0

私は文字列を持っています"field: 1, count: 22" どのようにオブジェクトに解析しますか?

提供しない評価

4

2 に答える 2

5

それがあなたの本当の問題なら、引用符で囲まれていないキー。次のコードが機能する可能性があります (キーにすべての空白が含まれていない場合)。

var x = "field: 1, count: 22";
JSON.parse("{"+x.replace(/([\S]+)\:/g,'"$1":')+"}");

しかし、他の人が指摘したように、あなたが提供したものはそうではないので、データがどこから来ているのかを調べて、そのソースを取得して有効なJSONを取得する必要があると思います.

于 2013-04-08T12:36:14.050 に答える
0

これを試すことができます:

function getJSON(str){
      // get lines i.e. "field: 1"
      var lines = str.split(",");

      for (var i = lines.length - 1; i >= 0; i--) {
            // separate key from values. "[field, 1]"
            var keyValue = lines[i].split(": ");
            // add the quotes
            lines[i] = "\"" + keyValue[0] + "\": " + keyValue[1];
      }

      // replace single quotes with double quotes and join array with comma
      // parsing it to an JSON object
      return JSON.parse(("{" + lines.join(", ") + "}").replace(/'/g, "\""));
}

しかし、@ Forbesmyesterの解決策はかなり良いです...とにかくそれが役立つことを願っています..

于 2013-04-08T12:40:27.140 に答える