在 JSON.parse 函数中传递外部变量
Passing a external variable in JSON.parse function
我正在尝试使用 JSON.parse
函数从 json 中获取值。我的 json 响应如下:
{
"rows": 10,
"os": "0",
"page": "1",
"total": "122",
"projects": {
"P143841": {
"id": "P143841",
"locations": [{
"geoLocId": "0002220957",
"latitude": "3.866667",
"longitude": "11.516667"
}],
}
}
}
如果我这样做,我可以得到值 10 JSON.parse(obj.rows)
但是如果我将行分配给一个变量,比如var value = rows
,然后将其传递给我得到undefined
的JSON.parse(obj.value)
函数。
附言我不会知道响应参数的名称,即我不知道它是rows
还是os
引用上面的示例。我将从数据库中检索它们。如果我执行以下代码:
for (var i=0;i<length;i++) {
var value = responseParam_array[i];
console.log(obj.value);
}
我得到了输出,但任何帮助将不胜感激。
根据其他答案,您不需要解析单个属性,只需解析原始 JSON,然后对生成的对象进行操作。
但至于这个问题:
"如果我将行分配给一个变量,比如
var value = rows
,然后将其传递给我得到undefined
的JSON.parse(obj.value)
函数"
如果value
是保存属性名称的变量 obj
那么您需要:
obj[value]
// NOT
obj.value
使用"点"表示法时,点右侧的部分将被视为属性的文字名称,而不是变量。使用方括号语法计算括号中的表达式,并将其结果作为属性名称。
你应该对整个对象进行 JSON 解析,然后使用解析的对象(你不需要为自己解析每个属性)
var strObj = '{"rows": 10,"os": "0","page": "1","total": "122","projects":{"P143841":{"id":"P143841",}}';
var obj = JSON.parse(strObj);
var rows = obj.rows;
如果我理解你的问题:
var str = '{ "some": "JSON String like the one above with", "rows": 10 }';
var parsed = JSON.parse(str);
var whatYouWant = parsed.rows;
相关文章:
- 定义函数时,如何捕获外部变量的当前值
- jQuery:如何访问外部变量
- 成功回调中的外部变量未正确更新
- 如何通过pickink外部变量在jsfiddle中执行javascript函数
- JQuery 承诺:访问外部变量或将结果传递给 .done 内部的 IIFE
- JsRender:使用 if 语句将 JSON 对象中的值与外部变量进行比较
- jQuery 函数中的外部变量和作用域
- 在 JavaScript 中维护函数外部变量的值
- 如何从传入的预定义回调访问外部变量
- 基于外部变量重新编译指令
- 从函数更改外部变量
- 从AJAX函数中修改外部变量
- 如何通过Javascript在MongoDB 'where'查询中使用外部变量
- 访问Promise链中的外部变量
- Javascript 构造函数,使用引用其他变量的外部变量进行闭包
- 如何在Angular.js指令中将service.js的内部查询结果绑定到外部变量
- 如果内部函数没有'不要使用外部变量的任何变量
- JS如何访问外部变量's函数
- 从@foreach循环内部访问外部变量
- Javascript:访问匿名函数中的外部变量