2015-05-26 2 views
0

Я получаю данные от источника в виде JSON. Скажем JSON выглядит такКак преобразовать JSON в литерал объекта?

var data = [ 
    {"city" : "Bangalore", "population" : "2460832"} 
] 

Я проходил мимо этот объект данных в кендо сетку, и я буду использовать его вне из коробки функции для форматирования чисел. Таким образом, мне нужно такое же JSON как литерал объекта, который выглядит как этот

var data = [{city : "Bangalore", population: 2460832}] 

Существуют ли какие-либо библиотеки, функции или простые способы для достижения этой цели?

+1

, если он имеет хорошо известную структуру, просто используйте 'parseInt' для этого свойства! –

+3

Это «JSON» не JSON. Это JavaScript. Единственный литерал объекта, который у вас есть, одинаковый в обеих версиях кода. Единственные различия заключаются в том, что вы заменили строковый литерал на числовой литерал. – Quentin

+0

Но конечный результат должен напоминать объектный литерал, чтобы я мог его повторно использовать в любом месте. Я не хочу повторно применять parseInt. –

ответ

2

Вы можете iterate over the Objects in the Array и изменять каждый population свойства, превращая его значение из строки в число с parseInt() or similar:

var data = [ 
    {"city" : "Bangalore", "population" : "2460832"} 
]; 

data.forEach(function (entry) { 
    entry.population = parseInt(entry.population, 10); 
}); 

console.log(data[0].population);  // 2460832 
console.log(typeof data[0].population); // 'number' 
+0

Я применил это решение, и оно отлично работает. Но мне все еще неудобно, что нужно применять его там, где мне это нужно. Я надеялся найти решение из ящика, где я могу сделать это только один раз, а затем повторно использовать данные. Но спасибо. У меня есть то, что мне нужно сейчас. –

0

Вы можете преобразовать JSON в объект буквальным, следуя этой идее:

(function() { 

    var json = 
    [ 
    { 
     "id": 101, 
     "title": 'title 1' 
    }, 
    { 
     "id": 103, 
     "title": 'title 3' 
    }, 
    { 
     "id": 104, 
     "title": 'title 4' 
    } 
    ]; 

    var result = {}; 

    for (var key in json) { 
    var json_temp = {} 
    json_temp.title = json[key].title; 
    result[json[key].id] = json_temp; 
    } 

    console.log(result); 

})(); 

выход будет:

Object { 
    101: Object { 
    title: "title 1" 
    } 
    102: Object { 
    title: "title 2" 
    } 
    103: Object { 
    title: "title 3" 
    } 
} 
Смежные вопросы