【问题标题】:Recursive Json node update [closed]递归Json节点更新[关闭]
【发布时间】:2019-12-11 22:44:07
【问题描述】:

我有一个代码可以帮助我更新 JSON 节点值。但是,我的处理方式有点复杂。我有一个可能遇到任何 JSONObject 的节点。

注意:下面是示例 json 结构。

{              
    "Apple": {
        "Name": "AA",
        "description": "apple"
    },           
    "Mango": {
        "Name": "RA",
        "description": "Mango"
    }
}

我想更新 Apple 和 Mango 的名称和描述。

【问题讨论】:

  • 你的问题是......?
  • 我想更新苹果和芒果的名称和描述。我该怎么做..我来自测试,所以我无法描述它的开发术语..对此感到抱歉...

标签: java json gson jsonnode


【解决方案1】:

之前:

{
   "Apple":{
      "Name":"AA",
      "description":"apple"
   },
   "Mango":{
      "Name":"RA",
      "description":"Mango"
   }
}

使用此代码:

JsonObject Apple = myJson.getAsJsonObject("Apple");
Apple.addProperty("Name", "BB");
Apple.addProperty("description", "New apple");

你会得到:

{
   "Apple":{
      "Name":"BB",
      "description":"New apple"
   },
   "Mango":{
      "Name":"RA",
      "description":"Mango"
   }
}

【讨论】:

    【解决方案2】:

    使用put方法:https://developer.android.com/reference/org/json/JSONObject.html

    JSONObject apple =  jsonArray.getJSONObject(0).getJSONObject("apple");
    person.put("Name", "Honeycrisp");
    
    //Similarly
    JSONObject apple =  jsonArray.getJSONObject(0).getJSONObject("apple");
    person.put("description", "a sweet apple");
    

    【讨论】:

    • 谢谢。但是想在java中看到。我正在创建一个 API 框架。我将收到请求 json,我需要使用不同的值运行。我可以在堆栈溢出中找到一些解决方案来使用递归函数更新 json,但是当涉及到上述场景(例如更新不同对象的描述或名称)时,我被卡住了。
    • @Danesh 我已经用 Java 解决方案更新了我的答案,对此感到抱歉!
    猜你喜欢
    • 2018-06-21
    • 2023-02-23
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    相关资源
    最近更新 更多