2016-12-06 3 views
-3

У меня есть JSON этого форматаКак отформатировать мой JSON?

[ 
    {"name":"universityID","value":"454"}, 
    {"name":"grade","value":"88"}, 
    {"name":"date","value":"15-Jan-2016"}, 
    {"name":"address","value":"Washington"} 
] 

Я хочу, чтобы мой JSON в

{ 
    "universityID":"454", 
    "grade":"88", 
    "date":"15-Jan-2016", 
    "address":"Washington" 
} 
+0

, что ваш вопрос? – njzk2

+0

@ njzk2 lol. См. Вопрос снова. –

+0

нет, но на самом деле ... какой язык, что вы пробовали, что не работает, что, по-видимому, является проблемой? – njzk2

ответ

0

Вы просто итерацию в массиве и прочее каждый атрибут в новый объект, как они приходят:

var input = [ 
 
    {"name":"universityID","value":"454"}, 
 
    {"name":"grade","value":"88"}, 
 
    {"name":"date","value":"15-Jan-2016"}, 
 
    {"name":"address","value":"Washington"} 
 
]; 
 

 
var output = {}; 
 

 
input.forEach(function(attr) { 
 
    output[attr.name] = attr.value; 
 
}); 
 

 
console.log(output);

EDIT: Если universityID должен быть массивом:

var input = [ 
 
    {"name":"universityID","value":"454"}, 
 
    {"name":"grade","value":"88"}, 
 
    {"name":"date","value":"15-Jan-2016"}, 
 
    {"name":"address","value":"Washington"} 
 
]; 
 

 
var output = {}; 
 

 
input.forEach(function(attr) { 
 
    if (attr.name == "universityID") { 
 
    if (!(attr.name in output)) output[attr.name] = []; 
 
    output[attr.name].push(attr.value); 
 
    } else { 
 
    output[attr.name] = attr.value; 
 
    } 
 
}); 
 

 
console.log(output);

+0

Как вы делаете то же самое в jquery –

+0

The ... same? Это ванильный JS, и ему не нужен jQuery. – Amadan

+0

throws Uncaught TypeError: input.forEach не является функцией. Я использую jquery. –

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