Java Android JPA JSON自定义子对象读取问题
下面是由Web服务上的JPA函数创建的JSON数组:Java Android JPA JSON自定义子对象读取问题,java,android,json,jpa,Java,Android,Json,Jpa,下面是由Web服务上的JPA函数创建的JSON数组: [{"Producao":{"cliente":{"id":3,"nome_fantasia":"animal"},"data":"2013-11-08T00:00:00-02:00","id":1,"liberado":0,"prazo":"2013-11-14T00:00:00-02:00","produto":{"codigo_desenho":"CODIGO","dependencia":0,"descricao":"Produto1
[{"Producao":{"cliente":{"id":3,"nome_fantasia":"animal"},"data":"2013-11-08T00:00:00-02:00","id":1,"liberado":0,"prazo":"2013-11-14T00:00:00-02:00","produto":{"codigo_desenho":"CODIGO","dependencia":0,"descricao":"Produto1","disponivel":1,"id":39,"qtde":1,"raiz":0},"qtde":1}},{"Producao":{"cliente":{"id":1,"nome_fantasia":"bem"},"data":"2013-11-08T00:00:00-02:00","id":2,"liberado":0,"prazo":"2013-11-14T00:00:00-02:00","produto":{"codigo_desenho":"","dependencia":0,"descricao":"teste3","disponivel":1,"id":35,"qtde":1,"raiz":0},"qtde":2}}]
我必须在我的Android应用程序中阅读它。将它们转换为列表。
对象“Producao”将对象“Cliente”作为属性
我正努力做到以下几点:
public static Producao jSONToProducao(JSONObject json) throws JSONException, ParseException{
JSONObject jPro = json.getJSONObject("Producao");
Producao producao = new Producao();
producao.setId(jPro.getInt("id"));
producao.setCliente(ClienteDAO.jSONToCliente(jPro.getJSONObject("cliente")));
.
.
.
return producao;
}
其中ClienteDAO.jSONToClient是:
public static Cliente jSONToCliente(JSONObject json) throws JSONException{
JSONObject jCli = json.getJSONObject("Cliente");
Cliente cliente = new Cliente();
cliente.setId(jCli.getInt("id"));
cliente.setNome_fantasia(jCli.getString("nome_fantasia"));
return cliente;
}
但是行producao.setCliente(ClienteDAO.jsontoclient(jPro.getJSONObject(“cliente”))
返回:
JSON异常~>cliente没有值”。"
我也试着把它当作JSONArray来读,但没用
JSON异常~>客户端无值
因为您正在从jSONToProducao
将cliente
JSONObject传递到jSONToCliente
方法,所以更改代码以从cliente
JSONObject获取所有值:
public static Cliente jSONToCliente(JSONObject json) throws JSONException{
// json contain only cliente JSONObject
Cliente cliente = new Cliente();
cliente.setId(json.getInt("id"));
cliente.setNome_fantasia(json.getString("nome_fantasia"));
return cliente;
}