0

我有一个这样定义的对象:

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 还是很陌生。

4

1 回答 1

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);
于 2013-04-27T22:35:11.797 回答