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