从(JSON)字符串中获取值
Posted
技术标签:
【中文标题】从(JSON)字符串中获取值【英文标题】:Get value from (JSON) String 【发布时间】:2016-09-30 13:39:26 【问题描述】:我有一个通过 HTTP 请求传递的字符串。但是我无法从中获得价值。字符串如下:
var a = "health":"img/biking_cropped.jpg","budget":"img/hip_cropped.jpg","culture":"img/old_museum_cropped.jpg"
但是,我无法获得例如 Health 的值,因为 a.health 给出了 undefined。但是 a[0] 只返回 。使用 JSON.parse 会使运行它的服务器崩溃。
【问题讨论】:
它对我有用:jsfiddle.net/vj1nqeu5 它不是一个字符串,它工作正常jsfiddle.net/vasi_32/8ocbbx2r "字符串如下" — 这不是字符串。 “但是 a[0] 只返回 。” — 你不会从你提供的代码中得到那个结果。 “使用 JSON.parse 会使运行它的服务器崩溃”——以什么方式?报告了哪些错误? 我认为问题在于我已经通过缓冲区获取了值并将其字符串化。我尝试过另一种方式或改变它 那是一个对象,而不是一个字符串 pal。如果字符串应该是: var a = "something"; 【参考方案1】:这里a
是一个对象
除了使用a.health
等你还可以使用for .in
来获取key和它的值
var a =
"health":"img/biking_cropped.jpg",
"budget":"img/hip_cropped.jpg",
"culture":"img/old_museum_cropped.jpg"
for(var keys in a)
document.write('<pre>'+keys + '--'+a[keys]+'<pre>')
查看jsfiddle
您还可以使用dot(.)
或bracket []
表示法来获取键的值。
可能你正在尝试做一个[key]。例如a['health']
【讨论】:
【参考方案2】:使用 JSON 解析器。有很多 JSON 解析器。
http://www.json.org/
【讨论】:
【参考方案3】:您需要选择值并将值分配给变量。您可以使用点表示法 . 或括号表示法 [ ]
var a = "health":"img/biking_cropped.jpg","budget":"img/hip_cropped.jpg","culture":"img/old_museum_cropped.jpg";
var health = a['health'];
var budget = a.budget;
var culture = a.culture;
console.log(health + "---- " + budget + " ---- " + culture)
// img/biking_cropped.jpg---- img/hip_cropped.jpg ---- img/old_museum_cropped.jpg
这是一个codepen链接http://codepen.io/anon/pen/LZEjme
【讨论】:
【参考方案4】:a[0] 返回“”的唯一原因是整个 json 对象是一个字符串。
var a = "abc";
console.log(a[0]); // Prints a
typeof a; //prints "string"
var b = ;
typeof b; //prints "object"
检查变量的“typeof”。它应该是一个对象 vs 字符串。
【讨论】:
以上是关于从(JSON)字符串中获取值的主要内容,如果未能解决你的问题,请参考以下文章
如果包含 json 文档作为字符串,如何从 MySQL(5.6) 列中获取值