it-swarm.com.ru

Преобразование строки в объект JSON

Как вы заставляете JS думать, что строка - это JSON?

У меня есть функция, которая работает только в том случае, если ему передается объект JSON. Если я передаю ему строку с тем же форматом, что и в JSON, она не работает. Поэтому я хочу, чтобы эта функция думала, что переданная ей строка является JSON. Строка действительно в формате JSON.

Я также попробовал следующее. Я ввел строку через Ajax, с параметром handle as как JSON, а затем, когда передал результат в функцию, она работает.

Поэтому я вывел проблему не со строкой. Как мне преобразовать эту строку в JSON? Если я получаю ту же строку через ajax-запрос, а затем передаю ее в функцию, работает, тогда как прямая передача не работает. 

Строка выглядит следующим образом:

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

and closing braces..
132
Zer0
var obj = JSON.parse(string);

Где string - ваша строка json.

328
Kshitij

Вы можете использовать JSON.parse() для этого.

Смотрите документы в MDN

Пример:

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

У меня была такая же проблема с похожей строкой как у тебя

{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)

Надеюсь, поможет,

Если у кого-то есть более элегантный подход, пожалуйста, поделитесь.

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:

Objdata= Json.parse(Data);
2
Ankita_systematix

Просто используйте функцию eval.

var myJson = eval(theJsibStr);
2
Siyavash Hamdi

Функция JSON.parse() сделает.

или же

Используя Jquery,

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

Давайте рассмотрим, у вас есть строка как 

пример: "имя: Люси, возраст: 21, пол: женщина"

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