javascript - 在 JavaScript 中解析嵌套的 JSON 数据
问题描述
我有一个嵌套的 JSON 数据集,想从中提取和打印某些值。
我可以提取和打印整个 JSON 组件,可以获取顶级数据的值,但我不知道如何访问下一级数据的各个组件。
我的代码如下。它正确打印“年龄”和“测量”的值
var json = `{
"age":"84",
"measurements":"5235",
"sensordatavalues":
[
{"value_type":"P1", "value":"5.50"},
{"value_type":"P2", "value":"1.65"},
{"value_type":"temperature", "value":"18.21"},
{"value_type":"humidity", "value":"66.75"},
{"value_type":"pressure", "value":"101171.75"}
]
}`;
// Converting JSON object to JS object
var obj = JSON.parse(json);
// Define recursive function to print nested values
function printValues(obj) {
for (var k in obj) {
if (obj[k] instanceof Object) {
printValues(obj[k]);
} else {
document.write(obj[k] + "<br>");
};
}
};
// Print all the values from the resulting object
printValues(obj);
document.write("<hr>");
// Print some of the individual values
document.write(obj.age + "<br>"); // Prints: Age
document.write(obj.measurements + "<br>"); // Prints: Measurements
document.write(obj.sensordatavalues.P1 + "<br>"); // Should print P1 value
document.write(obj["sensordatavalues"].P2 + "<br>"); // Should print P2 value
document.write(obj["sensordatavalues"]["humidity"] + "<br>"); // Should print Humidity
document.write(obj.pressure + "<br>"); // Should print Pressure
但无法从嵌套的 JSON 数据中正确解析“湿度”和“压力”(或其他值)的数据。我尝试了几种不同的方法,但似乎我错过了重要的一步。
任何帮助,将不胜感激。
解决方案
推荐阅读
- java - 如何在 JAVA 中实现瓦片无缝算法?
- windows - 批量连接视频对
- c# - AcquireTokenByAuthorizationCode 在使用 Azure Active Directory 的 ASP.NET MVC 的单租户应用程序中引发新异常
- knockout.js - Knockout Sortables、Draggables 和 Droppables - 在 droppables 之间移动的问题
- javascript - 格式化 hAxis 到日期 - Google Chart
- azure-data-factory - 是否存在数据工厂需要成为 Azure 订阅所有者的情况?
- postgresql - 将 psql 转储恢复到另一个(新)数据库名称 -d/--dbname 和 -f/--file 不能一起使用
- jquery - 如何通过ajax将JQuery Datatable与列表绑定
- python-3.x - 在服务器上选择第二个 GPU
- typescript - TypeScript - 查找类类型