【发布时间】:2021-08-27 19:10:09
【问题描述】:
所以我正在尝试创建一个 JSON 浏览器/编辑器。我能够将初始 JSON 解析为 div 并按照我喜欢的方式对其进行格式化。
这是我用来循环遍历初始 JSON 的函数
_iterate(_tab, raw_json){
var tab = _tab;
tab++;
for(var key1 in raw_json){
var data_type = typeof raw_json[key1];
var d = String(raw_json[key1])
if(d == String){
d = "String";
}
if(d == Number){
d= "Number"
}
if(data_type == "object" || data_type == "array"){
this.input.append(`<json-tab tab-width="${tab}"></json-tab><div class="json-editor-input-container-2 -je-${data_type}">'<span class="-je-key">${key1}</span>' :{</div></br>`)
this._iterate(tab, raw_json[key1])
}else{
this.input.append(`<div class="json-editor-row"><json-tab tab-width="${tab}"></json-tab><div class="json-editor-input-container-2">'<span class="-je-key">${key1}<span>' : '<div class="json-editor-input -je-${data_type}" contenteditable="true" for="{key: '${key1}', data: '${d}'}"></div>', </div></br></div>`)
}
}
this.input.append(`<json-tab tab-width="${tab -1}"></json-tab>},</br>`)
}
为了保存 JSON,我打算使用 div 从文本中检索 JSON
getJSON(){
var json_text = this.input.text().slice(0, -1)
return JSON.parse(`"${json_text}"`)
}
现在这可以被JSON.parse(); 解析,但是当我想console.log(getJSON()[0]) 这返回{
我没有正确格式化 JSON。可以在here找到一个活生生的例子@
【问题讨论】:
-
也许先做一个 console.log(
"${json_text}") 并通过 JSON linter 在线运行...?
标签: javascript json parsing