本文目錄一覽:
- 1、java怎麼把數據轉成json 數組
- 2、java 中JSON數據如何寫
- 3、如何從JSON數據創建Java類
- 4、java如何創建Json文件?
- 5、如何使用java創建json對象
- 6、求java合併json數據的代碼
java怎麼把數據轉成json 數組
有兩種方法實現:
(1)直接轉換:
創建JSONArray對象、JSONObject對象,通過put方法將其數據以鍵值對的形式填充,如例:
//假如有一個Java實體類Person,包括以下屬性:phone、sex、married、address。
ArrayListPerson persons = new ArrayListPerson();
for (int i = 0; i 3; i++) {
persons.add(new Person(“138******67”, “女”, true, “北京朝陽區”));//填充Java實體類集合
}
JSONArray array = new JSONArray();// Json格式的數組形式
JSONObject obj;//json格式的單個對象形式
for (int i = 0; i persons.size(); i++) {
obj = new JSONObject();
//依次填充每一個Java實體對象
try {
obj.put(“phone”, persons.get(i).getPhone());//json通過put方式以key-value形式填充
obj.put(“sex”, persons.get(i).getSex());
obj.put(“married”, persons.get(i).getMarried());
obj.put(“address”, persons.get(i).getAddress());
array.put(obj);//將JSONObject添加入JSONArray
} catch (JSONException e) {
e.printStackTrace();
}
}
(2)通過GSON工具實現:
只需要創建GSON對象,通過toJson方法轉換即可。如例:
//模擬Java數據
Person person = new Person(“敏敏”, 23, “女”, “北京市海淀區”);
//創建GSON對象
Gson gson = new Gson();
//調用toJson方法即可轉換為字元串的json格式
String json = gson.toJson(person);
java 中JSON數據如何寫
沒懂你要問什麼,是問JSON的格式么?
我就簡單地介紹下json格式:
按照最簡單的形式,可以用下面這樣的 JSON 表示”名稱 / 值對”:
{ “firstName”: “Tom” }
這個示例非常基本,而且實際上比等效的純文本”名稱 / 值對”佔用更多的空間:
firstName=Tom
但是,當將多個”名稱 / 值對”串在一起時,JSON 就會體現出它的價值了。首先,可以創建包含多個”名稱 / 值對”的 記錄,比如:
{ “firstName”: “Tom”, “lastName”:”Lin”, “email”: “aaa@aa.com” }
JSON 可以將 JavaScript 對象中表示的一組數據轉換為字元串,然後就可以在函數之間輕鬆地傳遞這個字元串,或者在非同步應用程序中將字元串從 Web 客戶機傳遞給伺服器端程序。
如何從JSON數據創建Java類
JSON (JavaScript Object Notation)一種簡單的數據格式,比xml更輕巧。
Json建構於兩種結構:
1、「名稱/值」對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。 如:
{
「name」:」jackson」,
「age」:100
}
2、值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)如:
{
「students」:
[
{「name」:」jackson」,「age」:100},
{「name」:」michael」,」age」:51}
]
}
補充:json是做交換格式,查詢效率非常低,如果做存儲的檢索格式就誤用了。
就是說「聊天信息的保存用json應該可以吧」還不如你之前的mysql資料庫。
json用在客戶端往服務端發送的通訊交換數據的格式上。服務端收到後轉為資料庫中或內存中存放。
java如何創建Json文件?
如果聊天數據的結構是固定的或變化不大的。
就直接「編排」json字元串。
為要輸出的對象增加一個String toJSON()方法
StringBuilder b=new StringBuilder();
b.append(“{ name:\””);
b.append(username);
b.append(“\”}”);
依次類推
return b.toString();
適合絕大多數情況。
補充:json是做交換格式,查詢效率非常低,如果做存儲的檢索格式就誤用了。
就是說「聊天信息的保存用json應該可以吧」還不如你之前的mysql資料庫。
json用在客戶端往服務端發送的通訊交換數據的格式上。服務端收到後轉為資料庫中或內存中存放。
如何使用java創建json對象
//將數據轉換為Json
public static String createJsonString(String key, Object value) {
JSONObject jsonObject = new JSONObject();
jsonObject.put(key, value);
return jsonObject.toString();
}
求java合併json數據的代碼
我想了一下,但是得有一個前提,就是第一個json數組的size必須和第二個json數組的size相同,並且一一對應,否則將造成數組溢出。
如果是基於上面這個前提,那麼實現的方法就簡單了。
操作json對象,其實標準的方法是將實體類轉換成json後再操作,我這裡的話為了便捷直接使用谷歌的Gson來創建JsonObject了,其他的json依賴還有阿里巴巴的FastJson等等,看你平時用什麼習慣。
引入Gson依賴:
dependency
groupIdcom.google.code.gson/groupId
artifactIdgson/artifactId
version2.8.0/version
/dependency
實現代碼:
public class Main {
public static void main(String[] args) {
JsonArray jsonArray1 = new JsonArray();
JsonObject json11 = new JsonObject();
json11.addProperty(“數據1”, “0000”);
json11.addProperty(“數據2”, “1111”);
JsonObject json12 = new JsonObject();
json12.addProperty(“數據1”, “0000”);
json12.addProperty(“數據2”, “1111”);
JsonObject json13 = new JsonObject();
json13.addProperty(“數據1”, “0000”);
json13.addProperty(“數據2”, “1111”);
jsonArray1.add(json11);
jsonArray1.add(json12);
jsonArray1.add(json13);
System.out.println(jsonArray1);
JsonArray jsonArray2 = new JsonArray();
JsonObject json21 = new JsonObject();
json21.addProperty(“數據3”, “6666”);
JsonObject json22 = new JsonObject();
json22.addProperty(“數據3”, “6666”);
JsonObject json23 = new JsonObject();
json23.addProperty(“數據3”, “6666”);
jsonArray2.add(json21);
jsonArray2.add(json22);
jsonArray2.add(json23);
System.out.println(jsonArray2);
//遍歷json數組,按位取出對象
for (int i = 0; i jsonArray1.size(); i++) {
JsonObject json1 = jsonArray1.get(i).getAsJsonObject();
JsonObject json3 = jsonArray2.get(i).getAsJsonObject();
//遍曆數據3內容,通過Entry獲取數據3的key和value,併合併到數據1中
for (Map.EntryString, JsonElement item : json3.entrySet()) {
json1.addProperty(item.getKey(), item.getValue().getAsString());
}
}
System.out.println(jsonArray1);
}
}
整體思路為:遍歷兩個json數組,按位進行合併操作。合併時,遍曆數據3的jsonObject,獲取其key和value,並將其合併到數據1中即可。
運行結果:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/309231.html