javascript - 将 OData 转换为 JSON

标签 javascript json deserialization odata

回应

< script >
  $(document).ready(function() {
    $.ajax({
      url: "http://localhost:37994/odata/EPStructures3/",
      type: "Get",
      contentType: 'application/json; odata=nometadata; charset=utf-8',
      success: function(data) 
      {
         var arr_from_json = JSON.parse(data);            
         //do something.....
      },
      error: function(msg)
      {
        alert(msg);
      }
    });
  }); 
< /script>

我收到以下 JSON

{"value":[{"eps_level":0,"id":2},{"eps_level":1,"id":3}]}

我想将其转换为 this (尝试使用 JSON.parse(data)),但它不起作用

[{"eps_level":0,"id":2},{"eps_level":1,"id":3}]

我的类(class)是

[Table("EPStructure")]
    public partial class EPStructure
    {
        public byte eps_level { get; set; }

        [Key]
        [Column("eps_id")]
        public int id { get; set; }    

    }

我怎样才能实现这个目标?

最佳答案

返回的数据为JSON格式。所以它实际上是一个 JavaScript 对象(JavaScript Object Notation)。您想要删除包含带有对象的数组的对象。

只需执行以下操作:

var arr_from_json = JSON.parse(data).value; //parse it into a JavaScript Object, call its property value. This will return an array

将其解析为 JavaScript 是正确的。从那时起,您可以正常对待该对象并从中检索属性。在本例中,数组存储在 value 属性中。

工作示例:

var data = '{"value":[{"eps_level":0,"id":2},{"eps_level":1,"id":3}]}'; //this line represents the object returned from the ajax call;
var arr_from_json = JSON.parse(data).value;

//you can access eps_level by doing this: arr_from_json[0].eps_level

document.body.innerHTML += JSON.stringify(arr_from_json);// for demo purposes. This line is not part of the solution.

正如 Joe Enos 评论的那样:如果您在此处使用 jQuery 功能 dataType,您可以跳过 JSON.parse 步骤,因为 data 将包含解析后的 JSON。

关于javascript - 将 OData 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28949629/

相关文章:

javascript - 相同功能按钮,但分别使用 Vue 和 Vuetify

javascript - 在 MS Lync 中开始与多个用户对话

php - 新的 GitHub Push to Master -> 压缩,发送到 S3

c# - 将任何类转换为键值对

Java GSON 自定义反序列化器版本控制支持

javascript - 在 MVVM View 模型中处理应用程序范围的元素

javascript - 如何在 Three.js 中返回对象而不是将其添加到场景中? (FBX加载程序)

javascript - 注入(inject)的 HTML 仅在 Dom 中解释为字符串

java - Spring的Json没有通过适当的响应得到解决

c# - 将嵌套 XML 反序列化到类中