这是一个正确的 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

Retrofit2 - JSON 数组解析

如何使用 Alamofire 和 SwiftyJSON 正确解析 JSON

如何从 BigQuery 的列中解析 JSON 文件

如何使用 C# 解析 JSON?

如何通过改造解析 JSON 响应