簡體   English   中英

在JavaScript中將JSON字符串轉換為數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM