在前端開發中,我們常常需要將由后端返回的數據進行解析和處理。而在這個過程中,最常見的就是將DSL(領域特定語言)轉換成JSON格式。
DSL作為一種特定領域的語言,通常用于描述一些復雜的數據結構,而JSON則是一種輕量級的數據交換格式,在前端開發中使用非常廣泛。
下面是一個DSL樣例:
name: "張三" age: 23 gender: "male" address: { province: "廣東省" city: "深圳市" }
通過將DSL轉換成JSON格式,我們可以得到以下結果:
{ "name": "張三", "age": 23, "gender": "male", "address": { "province": "廣東省", "city": "深圳市" } }
下面是一段DSL轉換成JSON的代碼示例:
function dslToJson(dsl) { const lines = dsl.split('\n') const result = {} let currentObj = result lines.forEach(line =>{ const [key, value] = line.split(':') if (value === undefined) { currentObj[key] = {} currentObj = currentObj[key] } else { currentObj[key] = value.trim() } }) return JSON.stringify(result, null, 2) } const dsl = `name: "張三" age: 23 gender: "male" address: { province: "廣東省" city: "深圳市" }` const json = dslToJson(dsl) console.log(json)
在上面的代碼中,我們通過將DSL按行分割,然后根據每一行的內容判斷是新建一個對象還是給當前對象添加一個屬性。最后使用JSON.stringify將對象轉換成JSON字符串。