javascript - 使用 Javascript 解析具有不同值类型的 JSON

标签 javascript json

我正在尝试解析一个 JSON 对象并使用该数据构造一个字符串。我使用的示例对象如下所示:

{
    "age": 35,
    "name": "",
    "time": {
        "24hr": true,
        "12hr": false
    }
}

我希望输出看起来像这样:

age - 35
name
time - 24hr:true, 12hr:false

我遇到了一个问题,因为键具有不同的值类型。 “age”有一个整数,“name”有一个空字符串,“time”有一个对象。

构建该输出的最简单方法是什么?

目前,我有一个 for 循环可以打印出键,但值显示不正确。

谢谢

最佳答案

大多数值类型都不应该有任何问题。

这是一个简单的例子,展示了如何在不使用递归的情况下做到这一点:

var o = {
    "age": 35,
    "name": "",
    "time": {
        "24hr": true,
        "12hr": false
    }
}, 
s = [],
x = [],
v, k, p;

for (k in o) {
   if (typeof (v = o[k]) === 'object') {
       s.push(k + ' - ');
       x.length = 0;
       for (p in v) {
           x.push(p + ':' + v[p]);
       }
       s.push(x.join(', ') + '\n');
   } else {
       s.push(k + ' - ' + v + '\n');
   }
}

console.log(s.join(''));

显然,您可以使用类似的方法来动态构造一些 HTML 结构而不是字符串。

关于javascript - 使用 Javascript 解析具有不同值类型的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18449671/

相关文章:

json - 如何使用 jq 更新 json 文档中的单个整数?

javascript - 将 JSON 数据附加到不同的元素

java - Jackson 反序列化 JSON 对象时出现 OutOfMemoryError

javascript - 如何将数据从一个精简文件导入到另一个文件

javascript - Canvas 绘制图像

javascript - 无法将 JSON 对象转换为任何可用的对象

ios - 错误 Json : "NSDebugDescription Garbage at end" (iOS)

javascript - 菜单隐藏时如何返回className

c# - 选定索引已更改

javascript - 使用 dagre-d3 或 colajs 的 d3js 流程图