[英]Convert JSON string to an array in JavaScript
我正在使用jqPlot創建圖表。 圖表的數據點來自使用GSON構建的JSON對象。 圖表數據點以JavaScript數組格式構建,因此保存要發送到客戶端的數據的Java對象存儲數據,如下所示:
String chartDataPoints = "[[1352128861000, 0.0], [1352128801000, 0.0], [1352128741000, 0.0], [1352128681000, 0.0], [1352128621000, 0.0],...More chart points in this format ,[[x0,y0], [x1,y2]...]]";
x點是日期。
是否可以直接從JSON對象傳遞此數據,就好像它是一個JavaScript數組? 目前,MyJsonObject.chartDataPoints被視為String,因此jqPlot($ .jqplot('chart1',MyJsonObject.chartDataPoints)不會繪制任何內容。
一種選擇是使用eval
:
var arr = eval('(' + json_text + ')');
以上是最簡單和最廣泛支持的方法,但是如果您信任源,則應該只使用eval
,因為它將執行任何JavaScript代碼。
某些瀏覽器具有本機JSON解析器,在這種情況下,您可以執行以下操作:
var arr = JSON.parse(json_text);
jQuery等第三方庫也可以提供處理JSON的功能。 在jQuery中,您可以執行以下操作:
var arr = jQuery.parseJSON(json_text);
最底層的兩種方法(使用解析器)是首選方法,因為它們提供了一定程度的保護。
如果刪除引號,那么這是一個有效的數組聲明。 然后你可以遍歷數組,將x點轉換為日期。
看看: https : //github.com/douglascrockford/JSON-js
有一種方法可以將字符串解析為一個對象,這是一個“安全”的方法 - 你可以在你的javascript中做一個eval(chartDataPoints)
,但是總是建議你通過JSON引擎解析它以防萬一有些壞事在那里!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.