1

jqueryを使用してこれを分割する方法を知りたい...

 "{"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]}"

それで、次のJSONを作成できます...

 {
  "d": [
       {
          "question": 1001,
          "answer": "a2"
       },
       {
          "question": 1002,
          "answer": "a2"
       }
       ]
 }

ありがとう。

4

3 に答える 3

1

をループしanswer、要素を で分割し-、新しい要素を作成してから にプッシュしdます。

var ret = {d: []};
// if you have json string, then you could jQuery.parseJSON to parse it
var obj = {"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]};
var answers = obj.answer, tmp, i;
for (i = 0; i < answers.length; i++) {
  tmp = answers[i].split('-');
  ret.d.push({"question": tmp[0], "answer": tmp[1]});
}

ライブデモ

于 2012-07-24T09:37:05.630 に答える
0

以下のようにjqueryでフォーマット関数を使用します。

var string = "{\"key\":\"val}{ue\"}{'key':'val}{ue'}{ \"asdf\" : 500 }";
var result = string.match(/('.*?')|(".*?")|(\d+)|({)|(:)|(})/g);
var newstring = "";
for (var i in result) {
   var next = parseInt(i) + 1;
   if (next <= result.length) {
      if (result[i] == "}" && result[next] == "{") {
         newstring += "},";
       }
      else {
        newstring += result[i];
   }
 }

このコードはjQueryで詳細に説明されています-$.eachはjsonコードページをループします

于 2012-07-24T09:48:21.017 に答える
0

http://api.jquery.com/jQuery.parseJSON/

これが役立つはずです。

"{"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]}"

のように見えるはずです

'{"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]}'

「q1001」と「-」を、JSON 標準に一致する文字列を含む正規表現に置き換えることができますが、それは普遍的な解決策ではありません

于 2012-07-24T09:35:30.240 に答える