【问题标题】:How to parse this JSON in android (returned from .NET webservice)如何在 android 中解析这个 JSON(从 .NET webservice 返回)
【发布时间】:2013-08-19 21:02:05
【问题描述】:

我有 ASP.NET 网络服务,它以 JSON 格式返回 Person 对象。请看以下Webservice代码:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Person person() {

    Person me = new Person();
    me.name = "Mark";
    me.lastname = "Brawn";

    return me;
}


public class Person {

 public String name;
 public String lastname;
}

然后我尝试在 Android 客户端中解析此响应并得到以下 JSON 输出:

{
"d": {
    "__type": "WebService+Person",
    "name": "Mark",
    "lastname": "Brawn"
}

}

此输出似乎是有效的 JSON 格式,但我想知道如何从该输出中正确获取属性(姓名、姓氏...)。

在 android 中我解析了这个输出:

JSONObject json = new JSONObject(result);
json.getString("name");

但我得到一个例外:

07-12 19:07:14.708: W/System.err(21575): org.json.JSONException: No value for name

所以实际上我想从这个 JSON 中获取值“name”和“lastname”。有任何帮助。

【问题讨论】:

    标签: java android asp.net json


    【解决方案1】:

    result”创建的 JSON 对象可能是父对象 JSON,而 "name" 位于嵌套的 JSON 对象中。试试json.getObject("d").getString("name")

    【讨论】:

    • 实际上它有效:)。但我很困惑。为什么 ASP.NET 网络服务返回这种 JSON?为什么不只有“name”和“surname”属性?
    • 不确定,这是创建 ASP.NET Web 服务的开发人员的问题。除了您的支持,请接受答案。
    • 奇怪。因为我看到了很多关于在 android 中解析 JSON 的示例代码,但我从未见过像我这样的输出(以及像你这样的解决方案)。但是好的,至少它有效。谢谢!
    • 仅供参考,“d”显然是 ASP.Net 中的一项安全功能:stackoverflow.com/questions/6588589/…
    【解决方案2】:

    您可以使用 GSON 轻松解析 json 数据

    gson download

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      相关资源
      最近更新 更多