เมื่อวานนี้เมื่อเราเชื่อมต่อกับระบบเพียร์ระบบเพียร์ไม่สามารถจัดการกับสตริง JSON ที่เราผ่านไปได้ ต่อมาเหตุผลก็คือควรมีอาร์เรย์ของวัตถุ JSON ในสตริง JSON ที่เราผ่านไป เนื่องจากสตริง JSON ของเราอยู่ในตารางเราจึงเอามันออกมาเป็นสตริง JSON และใส่ไว้ในอาร์เรย์ JSON ดังนั้นเราจึงใส่ไว้ในคำพูดสองครั้ง เพียร์คิดว่ามันเป็นสตริงไม่ใช่วัตถุ JSON ดังนั้นจึงไม่สามารถประมวลผลได้
[{"CardName": "BankCard1", "CardCode": "888888888", "CardValue": 999999999}, {"CardName": "BankCard2", "CardCode": "9999999999" Objects, ["{" CardName ":" BankCard1 "," CardCode ":" 888888888 "," CardValue ": 999999999}", "{" CardName ":" BankCard2 "," CardCode ":" 9999999999999 อาร์เรย์สตริง JSONต่อไปนี้สรุปหลายวิธีในการแปลง Java เป็นสตริง JSON:
1. แปลงวัตถุ Java เป็นสตริง JSON
2. สร้างสตริง JSON ผ่าน JsonObject
3. สร้างสตริง JSON ผ่าน Strings JSON
รหัสถูกนำไปใช้ผ่านแพ็คเกจ FastJSON ของอาลีบาบา
รหัสมีดังนี้:
1. คลาสบุคคลรายการที่มี crad
แพ็คเกจ com.doit8.test.jnontest.pojo; นำเข้า java.util.arraylist; นำเข้า java.util.list; บุคคลชั้นเรียนสาธารณะ {ชื่อผู้ใช้สตริงส่วนตัว; อีเมลสตริงส่วนตัว เซ็กซ์สตริงส่วนตัว; อายุ int ส่วนตัว; รายการส่วนตัว <ard> cardlist = new ArrayList <Card> (); สตริงสาธารณะ getUserName () {ส่งคืนชื่อผู้ใช้; } โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {this.userName = ชื่อผู้ใช้; } สตริงสาธารณะ getEmail () {ส่งคืนอีเมล; } โมฆะสาธารณะ setEmail (อีเมลสตริง) {this.email = อีเมล; } Public String getSex () {return sex; } โมฆะสาธารณะ setsex (String sex) {this.sex = sex; } public int getage () {return Age; } การตั้งค่าโมฆะสาธารณะ (อายุ int) {this.age = อายุ; } รายการสาธารณะ <card> getCardList () {ส่งคืน cardlist; } โมฆะสาธารณะ setCardList (รายการ <card> cardlist) {this.cardlist = cardlist; -2. คลาสการ์ด
แพ็คเกจ com.doit8.test.jnontest.pojo; การ์ดคลาสสาธารณะ {การ์ดสตริงส่วนตัว; CardCode สตริงส่วนตัว; CardValue จำนวนเต็มส่วนตัว; สตริงสาธารณะ getCardName () {ส่งคืนการ์ด; } โมฆะสาธารณะ setCardName (สตริงการ์ดชื่อ) {this.cardName = CardName; } สตริงสาธารณะ getCardCode () {return cardCode; } โมฆะสาธารณะ setCardCode (สตริง cardCode) {this.cardCode = cardCode; } จำนวนเต็มสาธารณะ getCardValue () {return cardValue; } โมฆะสาธารณะ setCardValue (จำนวนเต็ม cardValue) {this.cardValue = cardValue; -3. คลาสทดสอบการประมวลผล JSON
แพ็คเกจ com.doit8.test.jSontest; นำเข้า java.util.arraylist; นำเข้า java.util.list; นำเข้า com.alibaba.fastjson.json; นำเข้า com.alibaba.fastjson.jsonarray; นำเข้า com.alibaba.fastjson.jsonobject; นำเข้า com.doit8.test.jnontest.pojo.card; นำเข้า com.doit8.test.jnontest.pojo.person; /*** การแปลง JSON**/แอพคลาสสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// 1 สร้างสตริง JSON ผ่านวัตถุและวัตถุมีอาร์เรย์ของวัตถุที่แปลงเป็นสตริง JSON บุคคล = บุคคลใหม่ (); person.setusername ("xiejava"); person.setsex ("Man"); person.setage (38); person.setemail ("[email protected]"); การ์ดการ์ด 1 = การ์ดใหม่ (); Card1.SetCardName ("BankCard1"); Card1.SetCardCode ("888888888"); Card1.SetCardValue (9999999999); Card Card2 = การ์ดใหม่ (); Card2.SetCardName ("BankCard1"); Card2.SetCardCode ("9999999999"); Card2.SetCardValue (222222222222); // รายการอาร์เรย์วัตถุ <ard> cards = new ArrayList <Card> (); Cards.add (Card1); Cards.add (Card2); person.setCardList (การ์ด); สตริง json = json.tojson (บุคคล) .tostring (); System.out.println (JSON); // 2. สร้างสตริง JSON ผ่านวัตถุ JSON JSONObject Jobject = new JSONObject (); Jobject.put ("ชื่อผู้ใช้", "xiejava"); Jobject.put ("เพศ", "man"); Jobject.put ("อายุ", 38); Jobject.put ("อีเมล", "[email protected]"); // ห่ออาร์เรย์วัตถุผ่าน JsonArray jsonarray jarray = new jsonarray (); jarray.addall (การ์ด); Jobject.put ("cardlist", jarray); สตริง json2 = jobject.tojsonstring (); System.out.println (Json2); // 3. สร้างสตริง JSON ผ่านวัตถุ JSON JSONObject Jobject2 = new JsonObject (); Jobject2.put ("ชื่อผู้ใช้", "xiejava"); Jobject2.put ("เพศ", "man"); Jobject2.put ("อายุ", 38); Jobject2.put ("อีเมล", "[email protected]"); // สร้างสตริงสตริง JSON cardjsonstr1 = "{/" cardname/":/" bankcard1/",/" cardcode/":/" 88888888/",/" cardvalue/": 9999999999999 สตริง cardjsonstr2 = "{/" cardname/":/" bankcard2/",/" cardcode/":/" 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 JSON.ParseObject (CardJSonstr1); jsonArray jarray2 = new jsonarray (); // แปลงสตริง JSON เป็นวัตถุ JSON และเพิ่มลงใน JsonArray [โปรดทราบว่าคุณต้องใช้เมธอด json.parseobject () เพื่อแปลงเป็นวัตถุ JSON มิฉะนั้นจะยังคงเป็นสตริงและมันจะเป็นคำพูดสองครั้งเมื่อแปลงเป็นสตริง JSON ] jarray2.add (json.parseObject (cardjsonstr1)); jarray2.add (json.parseObject (cardjsonstr2)); Jobject2.put ("cardlist", jarray2); String JSON3 = Jobject2.tojsonstring (); System.out.println (JSON3); -แนะนำแพ็คเกจ fastjson ใน pom.xml
<Ederency> <roupId> com.alibaba </groupId> <ratifactId> fastjson </artifactid> <version> 1.2.15 </version> </dercendency>
การรันผลลัพธ์
{"cardlist": [{"cardname": "bankcard1", "cardcode": "888888888", "cardValue": 9999999999}, {"CardName": "BankCard1", "CardCode ":"9999999999","cardValue":222222222222}],"sex":"man","age":38,"email":"[email protected]","username":"xiejava"}
{"cardlist": [{"cardcode": "8888888888", "cardname": "bankcard1", "cardvalue": 9999999999}, {"cardcode": "99999999999999999999999999999999999 ฉัน ":" BankCard1 "," CardValue ": 22222222222222222]," Sex ":" Man "," อายุ ": 38," อีเมล ":" [email protected] "," ชื่อผู้ใช้ ":" xiejava "}}
{"cardlist": [{"cardname": "bankcard1", "cardcode": "888888888", "cardValue": 9999999999}, {"CardName": "BankCard2", "CardCode ":"99999999999","cardValue":22222222222}],"sex":"man","age":38,"email":"[email protected]","username":"xiejava"}