簡體   English   中英

Java 開頭添加 json 鍵值

[英]Java add json key value at the beginning

我有一個看起來像這樣的 json 字符串jsonstring

{
  "Users": [
    {
      "Name": "Appli",
      "ID": "519"
    },
    {
      "Name": "Dash",
      "ID": "602"
    }
  ]
}

如何在用戶前面添加鍵值對,如下所示:

{
  "Department":"Accounting", 
  "Users": [
    {
      "Name": "Appli",
      "ID": "519"
    },
    {
      "Name": "Dash",
      "ID": "602"
    }
  ]
}

您好,您可以嘗試將字符串格式化為 JSONObject,然后使用 JSONObject 設置鍵值

try {
     JSONObject jsonObject = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
}catch (JSONException err){
     Log.d("Error", err.toString());
}

要解決這種特定情況,您可以識別模式並使用String.replaceAll方法,如下所示:

String usersWithDepartment = jsonstring.replaceAll(
    "(\"Users\":\\s*\\[)", // find a pattern for "Users" element
    "\"Department\": \"Accounting\",\n  $1" // add a prefix and keep the group $1 as is
);
System.out.println(usersWithDepartment);

這是一個快速修復,當然更合適的方法是使用評論中提到的一些 JSON 處理庫。

更新

如果輸入字符串中可能出現多次\"Users\"數組,並且您只需將前綴添加到第一次出現,則正則表達式應更改為:

String usersWithDepartment = jsonstring.replaceAll(
    "(?s)(\"Users\":\\s*\\[.*$)", // grab entire string, enable multiline selection
    "\"Department\": \"Accounting\",\n  $1" // add prefix
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM