NodeJS中的Parse Json文件在Node中显示意外结果
Parse Json File in NodeJS displays unexpected results in Node
我有下面的nodejs代码,它读取baseline.json文件的内容并对其进行解析。然后我尝试显示所有的计算机ID和LastReportTime。我看到了一个奇怪的行为——它不会打印所有的ID和LastReportTime。此外,每次运行的结果都不一样。json对我来说太大了,我可以在这里上传,所以我在json Blob上上传了它。
Nodejs代码
var fs = require('fs');
try {
var json = JSON.parse(fs.readFileSync('baseline.json'));
for (var obj in json) {
if (json.hasOwnProperty(obj)) {
console.log(obj);
console.log("'n 'n");
if (obj == "BESAPI") {
for (var prop in json[obj]) {
console.log(prop);
if (prop == "Computer") {
// loop over Computer dataseries
for (var id in json[obj][prop]) {
console.log(prop + ':' + json[obj][prop][id].ID);
console.log(prop + ':' + json[obj][prop][id].LastReportTime);
}
}
}
}
}
}
} catch (err) {
console.error(err);
}
原始JSON
https://gist.github.com/anonymous/f27f75879e48c5387a03
在发布的数组中,LastReportTime和ID是数组。
试试这些线路:
console.log(prop + ':' + json[obj][prop][id].ID[0]);
console.log(prop + ':' + json[obj][prop][id].LastReportTime[0]);
如果你打印得很漂亮,你可以看到数据有两种风格,顶部部分后面是标准形式的数据余额,重复177次
{
BESAPI: {
$: {
xmlns:xsi: "http://www.w3.org/2001/XMLSchema-instance",
xsi:noNamespaceSchemaLocation: "BESAPI.xsd"
},
Computer: [
{
$: {
Resource: "api/computer/2431038"
},
LastReportTime: [
"Thu, 26 Feb 2015 14:54:41 +0000"
],
ID: [
"2431038"
]
},
{
$: {
Resource: "api/computer/16710075"
},
LastReportTime: [
"Thu, 26 Feb 2015 14:45:18 +0000"
],
ID: [
"16710075"
]
},
{
$: {
Resource: "api/computer/3415985"
},
LastReportTime: [
"Thu, 26 Feb 2015 14:50:52 +0000"
],
ID: [
"3415985"
]
},
{
$: {
Resource: "api/computer/11736335"
},
LastReportTime: [
"Thu, 26 Feb 2015 14:54:41 +0000"
],
ID: [
"11736335"
]
},
我剪掉了她很多行,但它以正常结束
{
$: {
Resource: "api/computer/5520740"
},
LastReportTime: [
"Thu, 12 Feb 2015 02:49:11 +0000"
],
ID: [
"5520740"
]
}
]
}
}
使用nodejs,您可以使用进行漂亮的打印
var pretty_print = require('js-object-pretty-print').pretty;
var parsed_data = JSON.parse(data_from_file);
console.log(pretty_print(parsed_data)); // good pretty print
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- NodeJS中的Parse Json文件在Node中显示意外结果
- Javascript do/while循环显示意外结果
- 代码显示意外行为
- 跨 ajax 请求到服务器返回的 json 对象显示错误意外令牌:
- 画布显示意外的颜色,并且不会显示反转的图像
- cakephp调试信息意外显示
- winjs:当显示页面时,会自动显示意外的字符串
- 使用Angular.js和UI Router突出显示菜单时出现意外类
- 嵌套循环中出现意外中断;t显示在调试器中
- 无法显示数据.SyntaxError:JSON.parse:JSON数据的第1行第1列出现意外字符
- react本机选项卡导航器npm模块在静态proptype中显示意外的令牌
- 硒IDE-显示意外警报!生成随机电子邮件ID时
- 意外的标记,.asp值显示为未定义
- eval(element.innerHTML)显示意外的语法错误
- indexOf()显示意外值
- 正在比较显示意外结果的日期对象
- 当鼠标离开SVG空间时,在鼠标上方突出显示节点会导致意外行为