2011-09-14 258 views
0

我是使用JSON的新手。在订阅web服务时,我收到如下所示的json响应。解析JSON响应

 
1024760833990-36891Customercustomer realtime20110914 10:48:10NNNYYYYN{"hostName":"uat91w82m7","data":{"view":{"columnValues":[{"DisplaySymbol":"MSFT Jan 19 '13 $35 Call","Symbol":"MSFT--130119C00035000","Quantity":1.0,"Price":0.71,"ChangeValue":0.01,"ChangePercentage":1.41,"DaysGainValue":1.0,"PriceAdjusted":false}],"columnHeaderCodes":[1,2,3,4,11,5],"viewName":null,"quoteType":0,"accountNumber":"39903689","asOfDate":1316022555984,"totalMarketValue":"71.0","todaysGainValue":"1.0","annualGainValue":"0.0","pagination":{"nextPositionMarker":"","pageNumber":1,"posPerPage":500,"posDetailPerPage":50,"totalNumberofPositions":1,"markerLength":0},"viewType":3,"portfolioId":null,"customView":false,"displayNetWorth":1,"groupOptions":"G0","viewID":null,"widgetType":null,"columnHeaders":null,"totalPositionCount":0,"easternDaylight":true,"widget":false}},"smUser":"102476083","success":true,"sysdate":1316022555992,"message_info":null,"message_type":null} 

我想在我的页面上显示某些参数。所以我如何解析它。

回答:只需通过PHP或任何其他服务器端脚本删除1024760833990-36891Customercustomer realtime20110914 10:48:10NNNYYYYN,他们将其解析为jQuery,我敢肯定它会完成这项工作。

+0

参见例如jQuery文档中的getJSON()示例http://api.jquery.com/jQuery.getJSON/ –

+0

假设您使用的是jQuery - 如果您不是,请发布您正在使用的库(例如Prototype ,Mootools等) – Joe

+0

[JSON.parse](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/parse) –

回答

1

首先将您的JSON粘贴到JSONLint.com以确保它是有效的JSON。您在问题中提供的内容无效。

其次,您可以使用JQuery使用parseJSON或旧版skool JS使用JSON.parse来解析它。

1

只要你有一个格式正确的JSON字符串,你所要做的就是使用JSON.parse(string)。

var JSON_string='{"name":"Jason","age":22}'; 
var JSON_object=JSON.parse(JSON_string); 
console.log(JSON_object.name+' is '+JSON_object.age); 
+4

您在此处创建了一个范围/命名冲突。你不能声明'JSON',然后尝试使用'JSON.parse'。您需要将变量存储在更像本地的“myResponse”或“myJSON”中。否则,你只是要用这段代码片段得到一个未定义的错误。 –

+0

我的不好,谢谢你的收获! –