我有一个像这样定义的对象:
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非常陌生。
答案 0 :(得分:1)
首先,您需要在JSON字符串中放置实际的"
,但使用"
对这些字符进行编码无效,但这些字符在HTML中。
此外,如果要使用数据填充Question_Value_c
个对象,则应将构造函数更改为:
function Question_Value__c(data) {
$.extend(this, data); //have a look at $.extend
}
然后您可以这样做(请注意,您的对象没有Question__c
和Order__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);