разбирать JSON JQuery - PullRequest
       1

разбирать JSON JQuery

0 голосов
/ 10 мая 2011

это, возможно, простой вопрос для некоторых из вас здесь.Но я просто не знаю, как это сделать, и мне нужна помощь ПЛОХО.Вот мой json:

{"name":"cust_num","comparison":"starts_with","value":"01"},
{"name":"cust_name","comparison":"starts_with","value":"ad"},
{"name":"cust_age","comparison":"=","value":"20"}

моя программа JSON предупреждает так:

 {
    "ID":"TBsKI7",
    "dataType":"data",
    "filters":[
        "{\"name\":\"cust_num\",\"comparison\":\"starts_with\",\"value\":\"01\"}",
        "{\"name\":\"cust_name\",\"comparison\":\"starts_with\",\"value\":\"ad\"}",
        "{\"name\":\"cust_age\",\"comparison\":\"=\",\"value\":\"20\"}
     ],
    "recordLimit":50,
    "recordOffset":0,
      .
      .
      .
 }

это, очевидно, ошибка.Мне кажется, что первый json был дважды структурирован (если я правильно понял этот термин).Теперь, что я хочу, это как исправить мой первый json или как его проанализировать, чтобы он выдавал без '\'.

Я уже пытался использовать jQuery.parseJson (), но он возвращает ноль.

спасибо за чтение.

РЕДАКТИРОВАТЬ : Это мой javascript-код, который производит вышеупомянутый json:

$('#table tr').each(function(){  
  var td = '';                   
  if ($(this).find("td:first").length > 0) {    // used to skip table header (if there is)            
    $(this).find('option:selected').each(function(){
    td = td + $(this).text()+ ',';
    });
    td = td + $(this).find('input').val();
    filt[ctr]=td;
    ctr += 1;           
  } 
});


for (var i = 0;i<filt.length;i++) {
  b = filt[i].split(','); 
  if (b[0] == "no"){
    b[0] = "cust_num";
  }
  if (b[0] == "name"){
    b[0] = "cust_name";
  }
  if (b[0] == "age"){
    b[0] = "cust_age";
  }
  jsonobj.name = b[0];
  jsonobj.comparison = b[1];
  jsonobj.value = b[2];
  c[i] = JSON.stringify(jsonobj); //if json.stringify, it will display the json with '\'
                      //if not, its only the last filter will be read for all the tr. 

}   

У меня есть динамическая таблицакоторый примет данные, которые я буду использовать для создания JSON.

1 Ответ

3 голосов
/ 10 мая 2011

Я надеюсь, что вы где-то определяете свои переменные.Вне цикла for вы должны выполнить

var c = [];

Затем попробуйте

c.push({
   name: b[0],
   comparison: b[1],
   value: b[2]
});

вместо

jsonobj.name = b[0];
jsonobj.comparison = b[1];
jsonobj.value = b[2];
c[i] = JSON.stringify(jsonobj);

, и тогда вы сможете выполнить

JSON.stringify(c);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...