【问题标题】:Exclude Odata metadata and type from JSON从 JSON 中排除 Odata 元数据和类型
【发布时间】:2015-05-08 15:23:30
【问题描述】:

下面的脚本从我的 ODataController 返回一个 JSON

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

JSON:

{ "odata.metadata":"http://localhost:37994/odata/$metadata#EPStructures3","value":[{"eps_level":0,"id":2},{"eps_level":1,"id":3}]}

我想排除元数据和类型,因此返回 JSON 如下:

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

我怎样才能做到这一点?

【问题讨论】:

    标签: json asp.net-web-api odata


    【解决方案1】:

    如果您在请求中添加“Accept: application/json; odata.metadata=none”标头,您将尽可能接近您想要的。

    【讨论】:

    • 布拉德,谢谢,我试过了。并得到 {"value":[{"eps_level":0,"id":2},{"eps_level":1,"id":3}]} 。我正在尝试获取 [{"eps_level":0,"id":2},{"eps_level":1,"id":3}]
    • 我不认为你想要我们有效的 OData。消息正文的 OData 规范规定返回的是 JSON 对象,而不是 JSON 数组,这些集合作为值属性返回。详情请见docs.oasis-open.org/odata/odata-json-format/v4.0/errata02/os/…
    • 布拉德,我得到的是一个有效的 oData。我想将其反序列化为 JSON 数组 [{"eps_level":0,"id":2},{"eps_level":1,"id":3}]。我试过 var arr_from_json = JSON.parse(data);但它不起作用?
    猜你喜欢
    • 2017-10-21
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    相关资源
    最近更新 更多