когда мой вызов ajax завершает массив json, возвращается
для привязки к угловым данным для работы отлично, мне нужно объединить все значения в один файл JSON. Я пробовал $.extend(), давая следующий результат
Нужно решение для этого
например, если мой ответ выглядит так:
[0:"{'test':'test'}", 1:"{'test':'test'}", 2:"{'test':'test'}",3: "{'test':'test'}"];
мне нужен результат:
{ test':'test', 'test':'test', 'test':'test', 'test':'test' }
Изменение: окончательное значение будет автоматически привязано к ng-модели.
желаемый пример вывода:
{
"unique_id": 172,
"portfolio": "DIGITAL",
"bus_unit": "dummy",
"project_phase": "",
"test_phase": "SIT",
"project": "Google",
"golivedate": "03/09/2016",
"performance": "Green",
"summary": "jgnbfklgnflknflk",
"last_updated": "",
"risks_issues": "gfmngfnfglkj",
"project_start": "03/16/2016",
"batchLast_run": "",
"custom_project": "1",
"test_execution_id": 5456,
"unique_id": 172,
"test_execution_id": 5456,
"pass": 8,
"fail": 8,
"blocked": 8,
"in_progress": 8,
"no_run": 8,
"not_available": 0,
"total": 8
}
Насколько я понимаю, вы пытаетесь преобразовать массив данных Json в один сингл json data. Таким образом, у вас есть массив значений, но вы хотите, чтобы все они были в одной переменной. Попробуй это
var testData = ["{'test':'test'}", "{'test':'test'}", "{'test':'test'}", "{'test':'test'}"];
var finalData ="";
$.each(testData,function(index,value){
finalData += value +',';
});
finalData = finalData.replace(/\},\{/g,',').slice(0, -1);
document.write(finalData);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Карта просто применяет эту функцию к каждому элементу массива.
var arrayOfJSON = ...
var arrayOfObjects = arrayOfJSON.map(function (jsonString){
return JSON.parse(jsonString)
})
var jsonStringWithAllObjects = JSON.stringify(arrayOfObjects)
Если вы используете underscore.js
тогда можете легко
как:
var list = [{"test1": "test1"}, {"test2": "test2"}, {"test3": "test3"}];
var newList = _.extend.apply(null,[{}].concat(list));
то вывод будет
{ test1: "test1", test2: "test2", test3: "test3" }
Итерации по массиву, преобразование каждого значения в объект JSON, конкатенация, а затем преобразование в строку обратно.
Если вам нужно больше времени, вы, вероятно, должны сделать это функцией.