2013-04-27 63 views
0

我有一個對象定義是這樣的:我該如何解析這個JSON成幾個'對象'?

function Question_Value__c() { 
    this.Id=null; 
    this.Name=null; 
    this.Question__c=null; 
    this.Order__c=null; 
} 

我想這個JSON反序列化到幾個這樣的對象,但我不能得到它的工作:

[{"id":"a0Dd000000RTVsAEAX","name":"ee"},{"id":"a0Dd000000RTVsAEAX","name":"ee"},{"id":"a0Dd000000RTVsAEAX","name":"ee"},{"id":"a0Dd000000RTVsAEAX","name":"ee"},{"id":"a0Dd000000RTVsAEAX","name":"ee"}] 

這裏是我的到目前爲止:

allValues = new Array(new Question_Value__c()); 
$(returnedJSON).each(function() { 
    allValues.push($(this)); 
console.log(allValues[0].id); 
}); 

任何幫助非常感謝,我很新的工作與JSON和JavaScript。

回答

1

首先,您需要將實際的"放入您的JSON字符串中,但使用"對這些字符進行編碼是無效的,但這將在HTML中進行。

另外,如果你想用數據來填充Question_Value_c對象,你應該改變你的構造函數是這樣的:

function Question_Value__c(data) { 
     $.extend(this, data); //have a look at $.extend 
    } 

然後,你可以做到這一點(請注意,你的對象沒有Question__cOrder__c屬性):

var json = '[{"id":"a0Dd000000RTVsAEAX","name":"ee"},{"id":"a0Dd000000RTVsAEAX","name":"ee"},{"id":"a0Dd000000RTVsAEAX","name":"ee"},{"id":"a0Dd000000RTVsAEAX","name":"ee"},{"id":"a0Dd000000RTVsAEAX","name":"ee"}]', 
     allValues = []; 

    $.each($.parseJSON(json), (function() { 
     allValues.push(new Question_Value__c(this)); 
    })); 

    console.log(allValues); 
+0

謝謝,我認爲核心問題是引號。我結束了將它轉換爲一個字符串替換"與「然後解析它爲JSON。 – turbo2oh 2013-04-28 17:26:35