【问题标题】:How to get the key and value fr a JSONObject in java如何在java中获取JSONObject的键和值
【发布时间】:2020-10-23 09:28:57
【问题描述】:

我们有一个 JSON 请求,我需要检查一些条件。

  1. 通过从键中获取值。(例如,从键名中获取安东尼)
  2. 检查key是否存在于json对象中。 (检查以下对象中是否存在 Dob 键)

JSON 请求将采用以下格式。

“学校”:{“RollNum”:“123”,“姓名”:“安东尼”,“地址”:“印度”}

请有人帮我解决。

【问题讨论】:

    标签: java json algorithm rest


    【解决方案1】:

    要获取属性,请使用:

    String key = jsonObject.get("key").getAsString();
    

    检查属性:

    jsonObject.has(key) && !jsonObject.isNull(key);  //key will be your field to check
    

    如果你还想检查字符串是否不为空,请使用:

    jsonObject.has(key) && !jsonObject.isNull(key) && jsonObject.has(key) && !jsonObject.isNull(key);
    

    【讨论】:

    • 我需要检查 json 对象中是否存在键 'Dob' 的条件。如果我按照上述操作,如果我没有在 json 请求对象中传递 Dob 键值对,我将得到异常
    • 你使用了 jsonObject.has(key) 吗?你得到了什么例外?
    【解决方案2】:

    你可以试试这个方法。

    JsonObject jsonObject = (JsonObject) JsonParser.parseString("yourJason");
    String name = jsonObject.get("Name").getAsString();
    

    如果你的json有nexted对象,你可以试试。

    JsonObject school = jsonObject.get("School");
    String name = school.get("Name").getAsString();
    

    【讨论】:

    • parseString 中传入的“你的 Jason”是什么??
    • 是我的json请求对象吗?
    【解决方案3】:

    我向你推荐图书馆Gson

    对于 Maven:

    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.8.6</version>
      <scope>compile</scope>
    </dependency>
    

    简单示例:

    Gson gson = new Gson();
    
    JsonObject json = gson.fromJson("your json string", JsonObject.class);
    
    // get attribute
    String name = json.get("Name").getAsString();
    
    // check an attribute
    if(json.has("someKeyName")) {
      // do something else
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      相关资源
      最近更新 更多