1

Jsonデータを["1","2","3"](文字列のリスト)として送信するレストサービスがありますが、これはFirefoxレストクライアントプラグインで正常に機能していますが、アプリケーションでデータを送信している間、構造が{"0":"1","1":"2","2":"3"}フォーマットされており、データを渡すことができません、アプリケーションを介してデータを送信できるように変換する方法{"0":"1","1":"2","2":"3"}["1","2","3"]どんな助けでも大歓迎です。

4

2 に答える 2

0

json を解析して javascript オブジェクトに戻す必要があります。他の寄稿者の 1 人がすでに指摘しているように、dojo の後の反復には解析ツールがありますが、ほとんどのブラウザJSON.parse()は、ECMA-262 第 5 版 (JS が基づいている仕様) で定義されている をサポートしています。その使用法は次のとおりです。

var str = your_incoming_json_string,
// here is the line ...
obj = JSON.parse(string);

// DEBUG: pump it out to console to see what it looks like
a.forEach(function(entry) {
  console.log(entry);
});

サポートしていないブラウザーの場合JSON.parse()は、json2.js を使用して実装できますが、実際には dojo を使用しているため、それdojo.fromJson()があなたの方法です。Dojo はブラウザーの非依存性を処理します。

var str = your_incoming_json_string,
// here is the line ...
obj = dojo.fromJson(str);

// DEBUG: pump it out to console to see what it looks like
a.forEach(function(entry) {
  console.log(entry);
});

AMD バージョンの Dojo を使用している場合は、Dojo のドキュメントに戻り、dojo.fromJsonページの dojo/_base/json の例を確認する必要があります。

于 2013-03-23T10:37:43.470 に答える
0

json の形式が である場合は{ "index" : "value" }{"0":"1","1":"2","2":"3"}その情報を利用して次のことができます。

var myObj = {"0":"1","1":"2","2":"3"};
var convertToList = function(object) {
   var i = 0;
   var list = [];
   while(object.hasOwnProperty(i)) {   // check if value exists for index i
        list.push(object[i]);          // add value into list
        i++;                           // increment index
   } 
   return list;
};

var result = convertToList(myObj);    // result: ["1", "2", "3"]

フィドルを参照してください: http://jsfiddle.net/amyamy86/NzudC/

リストを「反復」するには、偽のインデックスを使用します。インデックスにブレークがある場合、これは機能しないことに注意してください。これはできません。{"0":"1","2":"3"}

于 2013-03-22T05:05:10.573 に答える