【发布时间】:2020-10-22 18:38:55
【问题描述】:
我有一个具有以下格式值的对象:
[
{
NameSpace: 'furuuqu',
LocalName: 'uuurur',
ExtensionVlaues: 0,
FreeText: 'OEN',
'$$hashKey': 'object:291'
},
{
NameSpace: 'furuuqu',
LocalName: 'uuurur',
ExtensionVlaues: 1,
FreeText: 'TWO',
'$$hashKey': 'object:293'
}
]
我想从中读取数据,因此我尝试使用 JSON.stringfy 将其转换为 JSON,对象将如下所示:
{"NameSpace":"furuuqu","LocalName":"uuurur","ExtensionVlaues":0,"FreeText":"OEN","$$hashKey":"object:291"}
{"NameSpace":"furuuqu","LocalName":"uuurur","ExtensionVlaues":1,"FreeText":"TWO","$$hashKey":"object:293"}
我尝试循环遍历它并获取元素,但它显示每个元素的关键是这样的:
Object.keys(extension).forEach(function(key) {
console.log(key, extension[key]);
});
0 {
1 "
2 N
3 a
4 m
5 e
如果我不做JSON.stringify,那么undefined 中的结果会被正确读取。
for(var ex=0; ex<Extension.length; ex++)
{
//var extension = JSON.stringify(Extension[ex]);
Object.keys(Extension[ex]).forEach(function(key) {
console.log(key, extension[key]);
});
}
NameSpace undefined
LocalName undefined
ExtensionVlaues undefined
FreeText undefined
$$hashKey undefined
NameSpace undefined
LocalName undefined
ExtensionVlaues undefined
FreeText undefined
$$hashKey undefined
有人可以告诉我在这种情况下如何读取数据并显示。
【问题讨论】:
-
你确定需要JSON.parse吗?我认为它只是一个对象,不再是 JSON。试试
var extension = Query.Extension[ex] -
您正在使用的格式非常奇特。通常你会让数组和 JSON.stringify 整个事情,而不是数组中的每个单独的对象。
-
@slebetman 如果我不使用
JSON.parse,那么我将获得所有属性的undefined。这是控制台示例:console.log(Query.Extension[ex]["NameSpace"]);以及console.log(Query.Extension[ex].NameSpace); -
@GuyIncognito 我在 angularjs HTTP 请求中发送这样的数据:
params: {input:$scope.formdata,Extension:$scope.ExtensionList}。有没有更好的方法发送和读取数据,请给我一个例子。
标签: javascript json object stringify jsonparser