【问题标题】:how can I parse this JSON into several 'objects'?如何将此 JSON 解析为多个“对象”?
【发布时间】:2013-04-27 22:21:11
【问题描述】:

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

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

【问题讨论】:

    标签: javascript json deserialization


    【解决方案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);
    

    【讨论】:

    • 谢谢,我认为核心问题是引号。我最终将它转换为一个字符串来替换 "用 " 然后将其解析为 JSON。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多