【发布时间】:2014-03-21 14:33:40
【问题描述】:
我有一个json API,它有许多可选字段。当我收到这个对象时,我需要解析它并将数据添加到数据库中。 JSON.parser() 似乎首先解析最内部的数据,这是一种浪费。我需要先从最顶层开始解析。
我需要制作一个自定义字符串解析器还是有一个可用的?
示例 API:
"AddRequest" : {
"OptionalId" : "",
"OptionalType" : {
"Status" : "taken",
"DateStart" : "21/05/2013",
"DateEnd" : "21/06/2013",
"Summary" : "It was really good"
},
"OptionalHotels" : [
{
"HotelId" : "1",
"CheckIn" : "21/05/2013",
"CheckOut" : "21/06/2013",
"Name" : "Hotel Name",
"Latitude" : "",
"Longitude" : "",
"City" : "Toronto"
},
...
],
...
}
代码:
var jsonObject = JSON.parse(data ,
function(k, v) {
console.log(k + ':' + v);
}
);
【问题讨论】:
-
“先解析最里面的数据”是什么意思?整个 JSON 文本必须先由解析器解析,然后才能访问它。
-
为什么有些键在引号中而有些不是?你是什么意思我的“最内在的数据”?您不能(轻松)只解析 JSON 字符串的一部分。当您尝试对整个字符串调用
JSON.parse()时会发生什么? -
@Quentin 解析首先返回
Status : taken键值对而不是AddRequest : {...} -
@andre — 解析它将返回一个 JavaScript 对象,而不是单个键/值对。 (而且 JSON 和 JavaScript 对象都是无序的)
-
@Quentin 解析器应在一次调用中返回从整个 JSON 字符串解析的 javascript 对象。你能展示你用来解析 JSON 的代码吗?
标签: javascript json node.js parsing