【问题标题】:Android JPA JSON custom child object reading problemsAndroid JPA JSON自定义子对象读取问题
【发布时间】:2013-11-10 14:28:13
【问题描述】:

我有下面的 JSON 数组,由 WebService 上的 JPA 函数创建:

[{"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.jSONToCliente(jPro.getJSONObject("cliente"))) 行返回:

JSON 异常 ~> 对客户没有价值”。 ¬¬'

我也尝试将它读取为 JSONArray,但它不起作用。

【问题讨论】:

    标签: java android json jpa


    【解决方案1】:

    JSON 异常 ~> 对客户没有价值

    因为您将 cliente JSONObject 从 jSONToProducao 传递给 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多