簡體   English   中英

將JSON轉換為數組Javascript

[英]Convert JSON To Array Javascript

我目前正在接收一個JSON對象從我的應用程序的服務器端,結果是這樣

{"tags":"[{value: 2,label: 'Dubstep'},{value: 3,label: 'BoysIIMen'},{value: 4,label:'Sylenth1'}]"}

但是我不需要結果中的“標簽”和雙引號。

所以我想要的是該JSON對象的數組表示

因此,我將如何轉換它

{"tags":"[{value: 2,label: 'Dubstep'},{value: 3,label: 'BoysIIMen'},{value: 4,label:'Sylenth1'}]"}

對此

[{value: 2,label: 'Dubstep'},{value: 3,label: 'BoysIIMen'},{value: 4,label:'Sylenth1'}]

這是創建數組的循環

String k = "["; 
        List<Tag> tg = audioTaggingService.findTagsByName(q);
        for(int i = 0; i<audioTaggingService.findTagsByName(q).size();i++){
            Tag t = tg.get(i);
            if(i == (tg.size() - 1)){
                k+="{value: "+t.getId()+",label:'"+t.getName()+"'}";
            }else{
                k+="{value: "+t.getId()+",label:'"+t.getName()+"'}";
            }
        }
        k+="]";

上面代碼的結果就是這個

[{value: 2,label: 'Dubstep'},{value: 3,label: 'BoysIIMen'},{value: 4,label:'Sylenth1'}]

假設您在一個名為response的javascript對象中獲得了服務器端響應,您可以使用$.parseJSON函數解析tags字符串屬性。 但首先,您需要修復服務器端代碼,以便為tags屬性返回有效的JSON字符串(在JSON屬性名稱中必須用引號括起來):

// This came from the server
var response = {"tags":"[{\"value\": 2,\"label\": \"Dubstep\"},{\"value\": 3,\"label\": \"BoysIIMen\"},{\"value\": 4,\"label\":\"Sylenth1\"}]"};

// Now you could parse the tags string property into a corresponding
// javascript array:
var tags = $.parseJSON(response.tags);

// and at this stage the tags object will contain the desired array
// and you could access individual elements from it:
alert(tags[0].label);

如果由於某種原因您無法修改服務器端腳本以在tags屬性中提供有效的JSON,您仍然可以使用eval而不是$.parseJSON

var tags = eval(response.tags);

這不是推薦的方法,通常你應該避免使用eval因為它會執行任意的javascript。

initSelection: function (element, callback) {
                    var data = $(element).val();
                    callback($.parseJSON(data));
                }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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