【发布时间】:2014-09-23 15:51:38
【问题描述】:
我正在用 javascript 开发一个 Web 应用程序(在服务器端和客户端)。我将数据作为 json 来回发送,我希望能够在另一端解析它。问题是我里面有几个层次的嵌套对象,所以这就是我卡住的地方。例如,我正在发送以下数据:
var data = {};
data.title = "My Title";
data.metric = {
fact : "Malicious code detected",
technique : "XSS"
};
data.subject = {
userType : "ADMIN",
userName : "Jack",
clientNumber : "000",
terminal : "192.168.1.1"
};
data.context = {
environment : {
session : "00",
hostname : "mainServer",
sysType : "production"
},
resource : {
wpt : "DIA",
pid : "1024"
}
};
另一方面,当我收到它时,我只想能够完全循环通过这个对象,并打印它的内容。我在stackoverflow上看到了很多类似的问题,但没有一个有帮助。这是我到目前为止所做的:
function display(data) {
var resp = "";
var prop = null;
var dataJSON = JSON.parse(data);
for (prop in dataJSON) {
if (patternJSON.hasOwnProperty(prop)) {
resp += "obj" + "." + prop + " = " + dataJSON[prop] + "\n";
}
}
return resp;
}
但我不知道如何让它自动更深,无论级别数如何。 有人可以指出我正确的方向吗? 任何帮助将不胜感激! 10 倍
【问题讨论】:
-
我已经看过这篇文章了,对我来说情况不一样,我不想在我的 json 对象中寻找特定的东西。目前我只想将它打印到控制台以确保它正常工作,但稍后所有这些字段都会转到数据库中的某些表。
-
该答案显示了您如何遍历嵌套对象,这就是您的问题所在。修改代码以满足您的其他要求。
-
像 JSON.stringify(obj) 这样的东西好吗?它没有被格式化,但它会打印出所有对象的内容。
标签: javascript json parsing