web-dev-qa-db-ja.com

文字列をJSONオブジェクトに変換する

文字列が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..
137
Zer0
var obj = JSON.parse(string);

stringはあなたのjson文字列です。

333
Kshitij

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

MDNのドキュメントを参照

例:

var myObj = JSON.parse('{"p": 5}');
console.log(myObj);
26
Sarfraz

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

The problem her is the structure of the string the json parser wasn't recognizing that it needs to create 2 objects in this case. so what i did is kind of silly, i just re structured my string and added the [] with this the parser recognized

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

Hope it helps,

If anyone has a more elegant approach please share.

7
Abraham
var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );

リンク:-

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

6
sandeep patel
var Data=[{"id": "name2", "label": "Quantity"}]

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

Objdata= Json.parse(Data);
2

単にeval関数を使用します。

var myJson = eval(theJsibStr);
1
Siyavash Hamdi

JSON.parse()関数が行います。

または

Jqueryを使用して、

var obj = jQuery.parseJSON( '{ "name": "Vinod" }' );
alert( obj.name === "Vinod" );
0
Vinod Selvin

example : "name:lucy,age:21,gender:female"

function getJsonData(query){
    let arrayOfKeyValues = query.split(',');
    let modifiedArray =  new Array();
    console.log(arrayOfKeyValues);
    for(let i=0;i< arrayOfKeyValues.length;i++){
        let arrayValues = arrayOfKeyValues[i].split(':');
        let arrayString ='"'+arrayValues[0]+'"'+':'+'"'+arrayValues[1]+'"';
        modifiedArray.Push(arrayString);
    }
    let jsonDataString = '{'+modifiedArray.toString()+'}';
    let jsonData = JSON.parse(jsonDataString);
    console.log(jsonData);
    console.log(typeof jsonData);
    return jsonData;
}

let query = "name:lucy,age:21,gender:female";
let response = getJsonData(query);
console.log(response);

`

0
shishir bondre