169

文字列が JSON であると JS にどのように思わせるのですか?

JSON オブジェクトが渡された場合にのみ機能する関数があります。JSON と同じ形式の文字列を渡すと、機能しません。そのため、渡された文字列が JSON であるとその関数に認識させたいと考えています。文字列は確かに JSON 形式です。

私も次のことを試しました。「handle as」パラメーターを「JSON」として Ajax を介して文字列を入力し、結果を関数に渡すと機能します。

したがって、問題は文字列にあるのではないと推測しました。この文字列を JSON に変換するにはどうすればよいですか? ajaxリクエストを介して同じ文字列を取得し、それを関数に渡すと機能しますが、直接渡すと機能しません。

文字列は次のとおりです。

  {
     "data": [
   {
  "id": "id1",
      "fields": [
        {
          "id": "name1",
          "label": "joker",
          "unit": "year"
        },
         {"id": "name2", "label": "Quantity"},
    ],
      "rows": [    data here....

and closing braces..
4

9 に答える 9

389
var obj = JSON.parse(string);

stringあなたのjson文字列はどこにありますか。

于 2012-06-11T08:51:29.987 に答える
27

そのために を使用できますJSON.parse()

MDN のドキュメントを参照してください

例:

var myObj = JSON.parse('{"p": 5}');
console.log(myObj);
于 2012-06-11T08:50:22.947 に答える
6

私はあなたのような同様の文字列で同じ問題を抱えていました

{id:1,field1:"someField"},{id:2,field1:"someOtherField"}

ここで問題になるのは、文字列の構造です。この場合、json パーサーは 2 つのオブジェクトを作成する必要があることを認識していませんでした。私がしたことはちょっとばかげています。文字列を再構築[]し、パーサーが認識したこれを追加しました

var myString = {id:1,field1:"someField"},{id:2,field1:"someOtherField"}
myString = '[' + myString +']'
var json = $.parseJSON(myString)

それが役に立てば幸い、

誰かがよりエレガントなアプローチをしている場合は、共有してください。

于 2014-01-17T00:51:31.060 に答える
6
var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );

リンク:-

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

于 2012-06-11T08:52:27.413 に答える
2
var Data=[{"id": "name2", "label": "Quantity"}]

文字列変数を Json parse に渡します。

Objdata= Json.parse(Data);
于 2017-04-03T05:49:09.737 に答える