如何检查json中的键,以及它是否存在,然后在java模型对象中设置值

如何检查json中的键,以及它是否存在,然后在java模型对象中设置值,java,json,Java,Json,我有一个用默认值初始化的模型对象。为了刷新对象的内容,我调用一个web服务,从json对象获取响应和内容。 我想检查json响应是否包含该对象。如果有,则调用setter并设置数据;如果没有,则离开,则不设置数据。我的对象中有大约300个字段。我如何用更少的代码完成它。我列出了我目前的方法 我的模型对象是 public class MyObject { private String str1 = "Initial Value1"; private String str2 = "

我有一个用默认值初始化的模型对象。为了刷新对象的内容,我调用一个web服务,从json对象获取响应和内容。 我想检查json响应是否包含该对象。如果有,则调用setter并设置数据;如果没有,则离开,则不设置数据。我的对象中有大约300个字段。我如何用更少的代码完成它。我列出了我目前的方法

  • 我的模型对象是

    public class MyObject {
    
        private String str1 = "Initial Value1";
        private String str2 = "Initial Value2";
    
        public void setStr1(String str1)
        {
            this.str1 = str1;
        }
    
        public void setStr2(String str2)
        {
            this.str2 = str2;
        }
    
        public String getStr1(){
            return str1;
        }
    
    
        public String getStr2(){
            return str2;
        }
    }  
    
  • 我的json响应可能是这样的

           {
         "val_one":"New Value1",
         "val_two":"New_value2"
          }
    
    现在在运行时,我需要设置json响应的值

           MyObject myObject = new MyObject();
    
           if(jsonObject.has("val_one"));
           myObject.setStr1(jsonObject.get("val_one"));
           if(jsonObject.has("val_two"));
           myObject.setStr2(jsonObject.get("val_two"));
    

    现在,如何以更好、更高效的方式进行此操作

    您为什么希望自己使用对象模型映射?如果你使用spring,那么你可以使用jackson mapper并为你完成所有的工作。 如果您不想使用spring,那么仍然可以使用jackson2并让它处理解析:

    为什么要自己进行对象模型映射?如果你使用spring,那么你可以使用jackson mapper并为你完成所有的工作。 如果您不想使用spring,那么仍然可以使用jackson2并让它处理解析:

    为什么要自己进行对象模型映射?如果你使用spring,那么你可以使用jackson mapper并为你完成所有的工作。 如果您不想使用spring,那么仍然可以使用jackson2并让它处理解析:

    为什么要自己进行对象模型映射?如果你使用spring,那么你可以使用jackson mapper并为你完成所有的工作。 如果您不想使用spring,那么仍然可以使用jackson2并让它处理解析:

    如果双方都在使用JAVA,那么为什么不使用json io呢。您可以创建一个正常的对象。即

    Animal a = new Aminmal() andimal.setName("bob");
    
    然后使用json io将其转换为json——流到需要的地方。。。使用json io更改回对象

    这可以通过使用

    JsonWriter.objectToJson(Object o);
    JsonReader.jsonToJava(String json);
    

    json io也比我使用过的大多数(如果不是所有的话)第三方json库重量非常轻,速度更快

    也就是说,如果您想对输出进行更多控制,即。。日期转换等。。然后看看格森


    如果双方都在使用JAVA,那么为什么不使用json io呢。您可以创建一个正常的对象。即

    Animal a = new Aminmal() andimal.setName("bob");
    
    然后使用json io将其转换为json——流到需要的地方。。。使用json io更改回对象

    这可以通过使用

    JsonWriter.objectToJson(Object o);
    JsonReader.jsonToJava(String json);
    

    json io也比我使用过的大多数(如果不是所有的话)第三方json库重量非常轻,速度更快

    也就是说,如果您想对输出进行更多控制,即。。日期转换等。。然后看看格森


    如果双方都在使用JAVA,那么为什么不使用json io呢。您可以创建一个正常的对象。即

    Animal a = new Aminmal() andimal.setName("bob");
    
    然后使用json io将其转换为json——流到需要的地方。。。使用json io更改回对象

    这可以通过使用

    JsonWriter.objectToJson(Object o);
    JsonReader.jsonToJava(String json);
    

    json io也比我使用过的大多数(如果不是所有的话)第三方json库重量非常轻,速度更快

    也就是说,如果您想对输出进行更多控制,即。。日期转换等。。然后看看格森


    如果双方都在使用JAVA,那么为什么不使用json io呢。您可以创建一个正常的对象。即

    Animal a = new Aminmal() andimal.setName("bob");
    
    然后使用json io将其转换为json——流到需要的地方。。。使用json io更改回对象

    这可以通过使用

    JsonWriter.objectToJson(Object o);
    JsonReader.jsonToJava(String json);
    

    json io也比我使用过的大多数(如果不是所有的话)第三方json库重量非常轻,速度更快

    也就是说,如果您想对输出进行更多控制,即。。日期转换等。。然后看看格森


    除了其他建议之外,另一个选择是gson。这里是信息链接

    gson的基本思想是定义一个对象来表示您正在接收的JSON结构。因此,与现在的情况类似,您只需要更改对象属性以匹配JSON字段的名称,即“val_one”和“val_two”

    然后您只需要使用gson从JSON文本创建对象,例如:

    Gson gson = new GsonBuilder().create();
    MyObject json = gson.fromJson(jsonStr, MyObject.class);
    

    除了其他建议之外,另一个选择是gson。这里是信息链接

    gson的基本思想是定义一个对象来表示您正在接收的JSON结构。因此,与现在的情况类似,您只需要更改对象属性以匹配JSON字段的名称,即“val_one”和“val_two”

    然后您只需要使用gson从JSON文本创建对象,例如:

    Gson gson = new GsonBuilder().create();
    MyObject json = gson.fromJson(jsonStr, MyObject.class);
    

    除了其他建议之外,另一个选择是gson。这里是信息链接

    gson的基本思想是定义一个对象来表示您正在接收的JSON结构。因此,与现在的情况类似,您只需要更改对象属性以匹配JSON字段的名称,即“val_one”和“val_two”

    然后您只需要使用gson从JSON文本创建对象,例如:

    Gson gson = new GsonBuilder().create();
    MyObject json = gson.fromJson(jsonStr, MyObject.class);
    

    除了其他建议之外,另一个选择是gson。这里是信息链接

    gson的基本思想是定义一个对象来表示您正在接收的JSON结构。因此,与现在的情况类似,您只需要更改对象属性以匹配JSON字段的名称,即“val_one”和“val_two”

    然后您只需要使用gson从JSON文本创建对象,例如:

    Gson gson = new GsonBuilder().create();
    MyObject json = gson.fromJson(jsonStr, MyObject.class);
    

    我在我的android代码中使用了这个。我从未使用过jakson解析器。我知道它与android一起使用。如果您能以代码段的形式给出一些指针,那就太好了。提前感谢。这并不困难,您可以在这里为spring android模板使用如下指南: