这是一个正确的 JSON 吗?我们如何解析它?
Posted
技术标签:
【中文标题】这是一个正确的 JSON 吗?我们如何解析它?【英文标题】:Is this a correct JSON? How we can parse it? 【发布时间】:2014-07-12 16:34:33 【问题描述】:我的网络服务正在以 JSON 格式返回下面提到的输出,
"FetchSitePerformanceAutoResult":["DailyTimeStamp":"Nov 01, 2013","Performance":106917]
但我怀疑是因为我无法解析它。 如果它是正确的,请告诉我如何解析它?我想把它绑定到图表上。
完整代码
var retVal = '"FetchSitePerformanceAutoResult":["DailyTimeStamp":"Nov 01, 2013","Performance":106917,"DailyTimeStamp":"Nov 02, 2013","Performance":119542]';
alert('Before parsing ' + retVal);
var passValue = JSON.parse(retVal);
alert('After parsing Count ' + passValue.count);
last alert 给出的输出为 After parsing Count undefined。
【问题讨论】:
你的 json 很好@AK47。如果你想检查,你可以在jsoneditoronline.org 或 jsonlint.com 上检查你的 json 伙计们,我想用 javascript 解析,你能帮我写代码吗?将此 json 字符串分配给变量 ... 看看***.com/questions/4935632/… 是的,但它显示为未定义。请再次检查我的问题,我已编辑 查看我的更新答案。 【参考方案1】:在 javascript 中解析 json 的最简单方法是将其存储在一个变量中,然后可以这样进行:
var jsonString=JSON.parse(yourJsonString);
然后您可以相应地获取每个键及其值。
只需在 JsonEditoronline.org 上查看您的 json,以更好地阅读本文。
这是我如何在 javascript 中读取我的 json 的示例:
success:function(responseText)
alert(responseText);
return false;
var object= JSON.parse(responseText);
var response= object.response;
var div=$('<div></div>');
var docs= response.docs;
我的 json 是这样的:
"response":"docs":""
希望对你有帮助。
我使用 javascript 解析了您的 json,并且能够使用:
var myString='"FetchSitePerformanceAutoResult":["DailyTimeStamp":"Nov 01, 2013","Performance":106917]';
var jsonString=JSON.parse(myString);
alert("---------==="+jsonString);
var fetch= jsonString.FetchSitePerformanceAutoResult;
alert("llllllll -- "+fetch.length);
var time= fetch[0].DailyTimeStamp;
alert(time);
【讨论】:
天啊!明白了,我花了整整 2 天的时间才明白我试图跳过“FetchSitePerformanceAutoResult”的结果对象中会有层次结构。无论如何,非常感谢队友! 快乐的伙伴。这就是为什么我要求您在 jsoneditoronline 检查您的 json,因为它以分层格式显示您的 json,并让您更好地理解它。快乐编码.. :) 在查看 JsonEditoronline.org 之后仍然无法理解。但是在您详细共享代码(var fetch..)之后,我理解了这个问题。再次感谢朋友。【参考方案2】:要判断 JSON 是否正确,您可以使用 http://jsonlint.com/ 您的 JSON 是否正确。要解析它,请使用 .net JSON Deserializer http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx 或 JSON.NET 另请参阅此处进行一些讨论:Does .NET 4 have a built-in JSON serializer/deserializer?
编辑:如您所愿,请使用 JSON.parse。请参阅此处的一些讨论:http://www.json.org/js.html,这也解释了为什么不应该使用 eval(json),它也可以工作,但被认为存在安全风险。
【讨论】:
【参考方案3】:是的,您的 json 输出是正确的,您可以在此处检查自己是 Link,这将帮助您将 json 转换为 c# 类。希望这会有所帮助。
【讨论】:
【参考方案4】:这是一个有效的 JSON 字符串。你可以在http://jsonlint.com/查看它
【讨论】:
【参考方案5】:这是合法的 - php json_decode('"FetchSitePerformanceAutoResult":["DailyTimeStamp":"Nov 01, 2013","Performance":106917]');
可以很好地解析它。
【讨论】:
以上是关于这是一个正确的 JSON 吗?我们如何解析它?的主要内容,如果未能解决你的问题,请参考以下文章
如何以正确的方式在 IOS SWIFT 3 中解析 Google 距离矩阵 API JSON