javajsonunmarshalling

How to Convert Array JSON in a Java Object


i need to convert this JSON to a Java Object:

{"estabelecimento":[{"id":"5","idUsuario":"5","razaoSocial":"Bibi LTDA","nomeFantasia":"BibiPizza","telefone":"22121212","email":"ronaldo@bibi.com","gostaram":"0"},{"id":"8","idUsuario":"1","razaoSocial":"Nestor Latuf LTDA","nomeFantasia":"Nestor Sorvetes","telefone":"32343233","email":"nestor@Sorvete.com","foto":"","gostaram":"0"},{"id":"9","idUsuario":"1","razaoSocial":"Comercio Alimenticio Rivaldo","nomeFantasia":"Rogers Burguer","telefone":"210021020","email":"roger@gmail.com","foto":"","gostaram":"0"}]}

I try this, but not work:

 //JSONArray jArr = new JSONArray(br.toString());  
        
        //JSONObject jObj = new JSONObject(br.toString());
        
        //JSONArray jArr = jObj.getJSONArray("list");
        
        JSONArray jArr = new JSONArray(br.toString());

        for (int i=0; i < jArr.length(); i++) {
            JSONObject obj = jArr.getJSONObject(i);
            estabelecimento.setId(obj.getLong("id"));
            estabelecimento.setIdUsuario(obj.getLong("idUsuario"));
            estabelecimento.setRazaoSocial(obj.getString("razaoSocial"));
            estabelecimento.setNomeFantasia(obj.getString("nomeFantasia"));
            estabelecimento.setTelefone(obj.getString("telefone"));
            estabelecimento.setEmail(obj.getString("email"));
            estabelecimento.setGostaram(obj.getInt("gostaram"));
            
            estabelecimentoList.add(estabelecimento);
        }
        con.disconnect();

How can i obtain a Java Object? Someone can help? tks.


Solution

  • You can use the Gson lib of google:

    public class MyClass {
    
        private int data1 = 100;
        private String data2 = "hello";
        private List<String> list = new ArrayList<String>() {
          {
            add("String 1");
            add("String 2");
            add("String 3");
          }
        };
    
        //getter and setter methods needed
    
    
    }
    
    
    String str = {"data1":100,"data2":"hello","list":["String 1","String 2","String 3"]};
    com.google.gson.Gson gson = new com.google.gson.Gson();
    
    //To convert json string to class use fromJson
    MyClass obj = gson.fromJson(str, MyClass .class);
    
    //To convert class object to json string use toJson
    String json = gson.toJson(obj);