Java 从Android检索JSON中引用的对象
大家好,我目前正在尝试使用Android检索JSON,到目前为止,我没有遇到任何问题。但是,我有一个小问题,这与检索寄售类引用的对象有关,即ShipTo和Client类 到目前为止,我能够检索寄售值,如寄售活动、寄售CreationDate、寄售CustRef、寄售ID和订单号。但是,我不知道如何从ShipTo和客户端映射项目 这是我当前的代码,我正试图在一个方法中执行该代码:-Java 从Android检索JSON中引用的对象,java,android,json,wcf,Java,Android,Json,Wcf,大家好,我目前正在尝试使用Android检索JSON,到目前为止,我没有遇到任何问题。但是,我有一个小问题,这与检索寄售类引用的对象有关,即ShipTo和Client类 到目前为止,我能够检索寄售值,如寄售活动、寄售CreationDate、寄售CustRef、寄售ID和订单号。但是,我不知道如何从ShipTo和客户端映射项目 这是我当前的代码,我正试图在一个方法中执行该代码:- { getJobDetailsResult: [ { Client: { ClientID:
{
getJobDetailsResult: [
{
Client:
{
ClientID: 265,
ClientName: "RETRAVISION (WA) LTD"
},
ConsignmentActive: true,
ConsignmentCreationDate: "6/06/2012",
ConsignmentCustRef: "855929",
ConsignmentID: 304005,
OrderNo: "20807354",
ShipTo:
{
ShipToAddress1: "c/o HELENWAY ",
ShipToAddress2: "WHS E4 UNIT 12 MARKET CITY ",
ShipToCity: "CANNINGVALE",
ShipToContactName: null,
ShipToId: 18933,
ShipToName: "DALWALLINU RETRAVISION 2",
ShipToPCode: "6155",
ShipToState: "WA"
}
}
]
}
有人能告诉我如何改进吗?一切帮助都将不胜感激。多谢各位
编辑:我已经解决了这个问题。代码如下:-
con.Clients.ClientID = con.getint("ClientID");
所有3个对象;Android中的my寄售、ShipTo和Client对象现在正在填充 首先像这样解析响应
//Client object
Clients cl = new Clients();
cl.ClientId = clObj.getInt("ClientID");
cl.ClientName = clObj.getString("ClientName");
con.Clients = cl;
//ShipTo object
JSONObject stObj = cObj.getJSONObject("ShipTo");
ShipTo sto = new ShipTo();
sto.ShipToId = stObj.getInt("ShipToId");
sto.ShipToName = stObj.getString("ShipToName");
sto.ShipToAddress1 = stObj.getString("ShipToAddress1");
sto.ShipToAddress2 = stObj.getString("ShipToAddress2");
sto.ShipToCity = stObj.getString("ShipToCity");
sto.ShipToPostcode = stObj.getString("ShipToPCode");
sto.ShipToState = stObj.getString("ShipToState");
con.ShipTo = sto;
String response = EntityUtils.toString(response.getEntity());
JSONObject json = new JSONObject(response);
获取响应后,从响应创建一个json对象,如下所示
//Client object
Clients cl = new Clients();
cl.ClientId = clObj.getInt("ClientID");
cl.ClientName = clObj.getString("ClientName");
con.Clients = cl;
//ShipTo object
JSONObject stObj = cObj.getJSONObject("ShipTo");
ShipTo sto = new ShipTo();
sto.ShipToId = stObj.getInt("ShipToId");
sto.ShipToName = stObj.getString("ShipToName");
sto.ShipToAddress1 = stObj.getString("ShipToAddress1");
sto.ShipToAddress2 = stObj.getString("ShipToAddress2");
sto.ShipToCity = stObj.getString("ShipToCity");
sto.ShipToPostcode = stObj.getString("ShipToPCode");
sto.ShipToState = stObj.getString("ShipToState");
con.ShipTo = sto;
String response = EntityUtils.toString(response.getEntity());
JSONObject json = new JSONObject(response);
你可以得到这样的最终结果
//Client object
Clients cl = new Clients();
cl.ClientId = clObj.getInt("ClientID");
cl.ClientName = clObj.getString("ClientName");
con.Clients = cl;
//ShipTo object
JSONObject stObj = cObj.getJSONObject("ShipTo");
ShipTo sto = new ShipTo();
sto.ShipToId = stObj.getInt("ShipToId");
sto.ShipToName = stObj.getString("ShipToName");
sto.ShipToAddress1 = stObj.getString("ShipToAddress1");
sto.ShipToAddress2 = stObj.getString("ShipToAddress2");
sto.ShipToCity = stObj.getString("ShipToCity");
sto.ShipToPostcode = stObj.getString("ShipToPCode");
sto.ShipToState = stObj.getString("ShipToState");
con.ShipTo = sto;
String response = EntityUtils.toString(response.getEntity());
JSONObject json = new JSONObject(response);
试试这个,它会有用的