如何从ODATA返回json格式?

wil*_*wil 27 json odata

我知道ODATA可以返回json但不确定我是否必须使用属性或接口来执行此操作.

我希望它像http://odata.netflix.com/Catalog/Titles?$ format = JSON一样,但我的odata服务不返回JSON.当我把它称为www.foo.com/service?$format=json时,它只返回XML.

使用ODATA返回json需要做什么?

lam*_*ant 23

下载并安装Fiddler.

http://www.fiddler2.com/fiddler2/

安装完成后,打开它,单击位于Fiddler右侧的"Request Builder"选项卡.

插入此网址:

http://test.com/feed2/ODataService.svc/results

请注意,您不需要?$ format = JSON

在"请求标头"部分中,插入以下行:

accept: application/json
Run Code Online (Sandbox Code Playgroud)

点击Fiddler右上角的Big"Execute"按钮.

您将看到请求的结果添加到Fiddler左侧的列表中.

双击请求.Fiddler的右侧将更改为"Inspectors"选项卡,您可以在其中查看请求的结果.

此外,由于您正在使用Json,您可能希望下载并安装Fiddler的Json查看器插件:

http://jsonviewer.codeplex.com/


Nat*_*ook 13

较新版本的WCF数据服务默认支持JSON,您必须拥有

Accept: application/json;odata=verbose
Run Code Online (Sandbox Code Playgroud)

在请求标头中.

Accept: application/json
Run Code Online (Sandbox Code Playgroud)

已经不够了.更多信息在这里.


Oli*_*ray 9

似乎没有人在这里非常干净地回答你的问题!

在HTML页面中,您可以使用以下Javascript/JQuery代码使WCF数据服务以JSON格式返回数据;

    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">

        var sURL = "http://YourService.svc/Books(10)";

        function testJSONfetch() {

            $.ajax({
                type: "GET",
                contentType: "application/json; charset=utf-8",
                datatype: "json",
                url: sURL,
                error: bad,
                success: good,
                beforeSend: function (XMLHttpRequest) {
                    //Specifying this header ensures that the results will be returned as JSON.
                    XMLHttpRequest.setRequestHeader("Accept", "application/json");
                }
            });

        }

        function good(response)
        {

        }

        function bad(response) 
        {

        }

    </script>
Run Code Online (Sandbox Code Playgroud)


Gla*_*alg 7

您需要在请求标头部分添加"Accept:application/json".

看看这个链接