2013-08-19 126 views
0

我有ASP.NET webservice,它以JSON格式返回Person对象。请看下面的web服务代码:如何在android中解析这个JSON(从.NET 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。任何帮助appriciated。

回答

1

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

+0

其实它的工作原理:)。但我很困惑。为什么ASP.NET webservice返回这种JSON?为什么不只是“姓名”和“姓氏”属性? – rootpanthera

+0

不确定,这是创建ASP.NET Web服务的开发人员的问题。请接受除了upvote之外的答案。 – Quadddd

+0

奇怪。因为我在Android中看到了很多关于解析JSON的示例代码,但是我从来没有见过类似于我的输出(以及类似于你的解决方案)。但是好的,至少它是有效的。谢谢! – rootpanthera