2016-02-03 3 views
0

Родственный Retrieve two lists, sort and compare values, then display all the resultsКак отделить JSON.stringify результат

вопрос в соответствующем посте было как объединить два списка и сортировать их. Код ссылался на каждый элемент в каждом списке. Итак, когда я получил результат, я мог бы манипулировать им.

Лучшее решение, используемое console.log(JSON.stringify(result,null,2));, чтобы вернуть результат, красиво комбинированный и отсортированный.

Проблема в том, что я могу перевести это обратно во что-то, с чем я могу работать. Я могу получить результат в переменной и отобразить его на странице, но это исходный вывод: [ { "Title": "apple", "Type": "rome", "State": null }, ...

Попробовал 'JSON.parse(result);' где result - переменная, используемая для обработки комбинации и сортировки двух списков. Все, что дает, является недопустимой символьной ошибкой в ​​строке. Также посмотрел опцию 'replace'. Это меня просто смутило, тми. Пробовал настройку переменной непосредственно на результат (так что те, кто знает, смеются)'var foo = result;' Это возвращает объект, объект.

Желаемый конечный результат должен состоять в том, чтобы каждый отдельный элемент был помещен в таблицу (или список) на моей странице html с пробелами в любом столбце, где нет данных.

Я знаю, что должен быть простой и простой способ сделать это без 200 строк кода трансформации. Но я не могу найти ясный пример. Все, что я вижу, это для + экспертов или использует супер простой массив, который вводится в код.

Есть ли способ подключить что-то вроде этого (от моего оригинала) до result вместо использования JSON.stringify? Какие другие шаги мне не хватает в возможности извлекать поля из JSON.stringify с помощью JSON.parse?

}).success(function (data) { 

    var title = ''; 
    var type = ''; 
    $.each(data.d.results, 
    function (key, value) { 

    title += "Title: " + value.Title + "<br/>"; 
    type += "Type: " + value.Type + "<br/>"; 
    }); 

$("#tdtitle").html(title); 
$("#tdtype").html(type); 
+0

Можете ли вы описать ошибку при попытке использовать JSON.parse? Если письмо есть u, есть хороший шанс, что переменная не определена. – David

+0

Трудно понять, где вы боретесь. Не могли бы вы представить пример ожидаемого для 'data'. Что вы получаете в цикле '$ .each()? – Twisty

+0

Если вы использовали 'dataType: 'json'' в вызове AJAX,' result' уже является массивом Javascript, вам не нужно его анализировать. Просто войдите в элементы массива. Ваш код должен работать как написано. – Barmar

ответ

3

Terry, Вы писали: «Все, что дает, является недопустимой символьной ошибкой на линии»? Тогда result недействителен json. Проверьте его здесь: http://jsonlint.com/, исправьте его, затем повторите попытку.

var data = { 
 
    d:{ 
 
    results: [ 
 
     { "Title": "apple", "Type": "rome", "State": null }, 
 
     { "Title": "grape", "Type": "fruit", "State": null } 
 
    ] 
 
    } 
 
}; 
 

 
var title = ''; 
 
var type = ''; 
 
$.each(data.d.results, function (index, value) { 
 
    title += "Title: " + value.Title + "<br/>"; 
 
    type += "Type: " + value.Type + "<br/>"; 
 
}); 
 

 
alert(title + type);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

Гавриил, вот и все. Кусок мне не хватало. JSON вернёт правильно, но я пропустил последний этап - $ .each() Следующие работы (где «результат» - это переменная, содержащая данные) var title = ''; var type = ''; $ .each (результат, функция (индекс, значение) { title + = "Название:" + значение.Title + "
"; тип + = "Тип:" + значение. Тип + "
"; }); – Terri

Смежные вопросы