【问题标题】:webservice still return xml instead of jsonwebservice 仍然返回 xml 而不是 json
【发布时间】:2012-11-13 06:58:00
【问题描述】:

Consuming web service with RESTKIT 的主要问题中,我学到了一些东西,但在学习如何使用 RestKit 时遇到了更多障碍。

现在的一个障碍是让我的 asmx 文件以 JSON 格式返回数据。 (以下来自http://williamsportwebdeveloper.com/cgi/wp/?p=494的一些方法)

[WebMethod]
    [ScriptMethod( ResponseFormat = ResponseFormat.Json)]
    public string testText()
    {
        string name = "Herro World";
       // return name;
        JavaScriptSerializer js = new JavaScriptSerializer();
        string strJSON = js.Serialize(name);
        return strJSON;

    }

但是,我在浏览器中调用时的返回仍然是<string xmlns="http://tempuri.org/">"Herro World"</string>

我目前使用的是 .net 4.0。我尝试阅读 diff 文章和 SO 线程,并尝试调整它们的设置,但无济于事。

【问题讨论】:

    标签: .net json web-services


    【解决方案1】:

    最可能的原因:您在 http 服务器中运行了错误的旧版本代码。尝试将name 更改为您以前未使用过的其他字符串值...这应该会告诉您您部署的代码是否已正确更新。

    【讨论】:

    • 什么意思?更改变量name 的值,或为js.Serialize(newVariable) 创建一个新的字符串变量
    • @YangJieDomodomo 我的意思是,改变你的代码输出,这样当你查看输出时,你知道你是否从最新的代码中得到输出,而不是一些旧版本,这是不同的并生成 XML。
    • 好的,我明白你的意思。谢谢!我现在就去试试
    【解决方案2】:

    仔细查看http://williamsportwebdeveloper.com/cgi/wp/?p=494中给出的示例并阅读一些资料和文章后,原来我们必须解析对象。含义字符串无法解析。问题是通过添加一个对象来存储字符串来解决的。

    [WebMethod]
    [ScriptMethod( ResponseFormat = ResponseFormat.Json)]
    public string testText()
    {
        string name = "Testing for Json!";
        List<string> arrayList = new List<string>();
        arrayList.Add(name); 
        JavaScriptSerializer js = new JavaScriptSerializer();
        string strJSON = js.Serialize(arrayList);
        return strJSON;   
    }
    

    这将返回&lt;string xmlns="http://tempuri.org/"&gt;["Testing for Json!"]&lt;/string&gt;

    希望它能帮助像我这样正在尝试更改返回格式的新人。

    【讨论】:

      猜你喜欢
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 2014-07-11
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      相关资源
      最近更新 更多