JavaScript для начинающих: работа с JSON и объектами в JavaScript - PullRequest
8 голосов
/ 15 мая 2009

У меня есть какой-то JSON, возвращенный в браузер, как этот "продукт":

{ "Title": "School Bag", "Image": "/images/school-bag.jpg" }

Я хочу, чтобы эти данные были объектом "Product", чтобы я мог использовать методы-прототипы, такие как toHTMLImage(), который возвращает HTML-представление продукта:

function Product() { }
Product.prototype.toHTMLImage = function() { //Returns something like <img src="<Image>" alt="<Title>" /> }

Как мне преобразовать мои результаты JSON в Product объект, чтобы я мог использовать toHTMLImage?

Ответы [ 4 ]

19 голосов
/ 15 мая 2009

Просто, если я понял,

var json = { "Title": "School Bag", "Image": "/images/school-bag.jpg" }
function Product(json) {
    this.img = document.createElement('img');
    this.img.alt = json.Title;
    this.img.src = json.Image;

    this.toHTMLImage = function() {
        return this.img;
    }
}

var obj = new Product(json); // this is your object =D
2 голосов
/ 15 мая 2009
var stuff = { "Title": "School Bag", "Image": "/images/school-bag.jpg" }
var newstuff = new Product();
for(i in stuff) newstuff.i = stuff[i];

Не уверен, что это сработает, но попробуйте:

var stuff = { "Title": "School Bag", "Image": "/images/school-bag.jpg" }
stuff.prototype = Product;
2 голосов
/ 15 мая 2009

Возможно, эта страница будет полезна: http://www.json.org/js.html

0 голосов
/ 29 апреля 2010

Для преобразования JSON в объект вы можете использовать window.JSON.parse(jsonText) в Mozilla (проверьте Chrome и Opera, я не знаю, как это там работает.)

В Internet Explorer вы можете использовать (new Function("return " + jsonText))(), но вы должны проверить JSON на недопустимые символы, Google.

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