2016-10-27 4 views
0

Я пытаюсь прочитать строку json string в jQuery. Я попытался ниже способ, но получение:Прочитать строку json map в jquery

Недопустимый операнд ошибка

Любая помощь приветствуется.

var data = '{"Category1":["A","B","C"],"Category2":["P","Q","R"]}'; 

$.each(data, function(k,v) { 
    console.log(k + " " + v); 

    $.each(v, function(item) { 
     console.log(k + "-" + item); 
    } 
}); 

Ожидая category1 - А, category1 - B ...

+0

var data is string not object .. – kamesh

+0

Ваша переменная 'data' является строкой для использования' $ .each' вам нужно преобразовать строку в JSON, используя 'JSON.parse' –

ответ

0

Небольшое изменение в @abpatil ответ, это то, что именно вы хотите.

var data='{"Category1":["A","B","C"],"Category2":["P","Q","R"]}'; 
 

 
$.each(JSON.parse(data), function (k, v) { 
 
    console.log(k + " "+ v); 
 
    $.each(v, function (i, data) { 
 
     console.log(k + ' - ', data); 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

надежда, что помогает!

+0

Спасибо Satendra, он работает как ожидалось. –

0

Использование JSON.parse для разбора JSON строку. Попробуйте следующие код-

var data='{"Category1":["A","B","C"],"Category2":["P","Q","R"]}'; 
 
//use JSON.parse to parse a JSON string 
 
$.each(JSON.parse(data), function(k,v) { 
 
    console.log(k +" "+v); 
 
    $.each(v, function(item) { 
 
      console.log(k +"-"+item); 
 
    });//here you missed closing bracket 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

Используйте v[item], как вы должны принести элементы массива по их индексу.

var data={"Category1":["A","B","C"],"Category2":["P","Q","R"]}; 
 

 
$.each(data, function(k,v) { 
 
    console.log(k +" "+v); 
 
    $.each(v, function(item) { 
 
     console.log(k +"-"+v[item]); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

Спасибо Sunrays, он работает как ожидалось. –

+0

Если вы удовлетворены, проголосуйте за меня за большую карму. : D –