2013-04-27 67 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