Gestern, als wir mit dem Peer -System miteinander verbunden waren, konnte das Peer -System die von uns bestandene JSON -String nicht verarbeiten. Später war der Grund, warum es in der JSON -Saite, die wir bestanden haben, eine Reihe von JSON -Objekten geben sollte. Weil unsere JSON -String in der Tabelle ist, haben wir sie als JSON -String herausgenommen und in das JSON -Array gesteckt, also haben wir sie in doppelte Zitate gesteckt. Der Peer glaubt, dass es sich um eine Zeichenfolge handelt, kein JSON -Objekt, daher kann es nicht verarbeitet werden.
[{"CardName": "Bankcard1", "Cardcode": "888888888", "CardValue": 99999999}, {"CardName": "Bankcard2", "Cardcode": "999999999999999999999999999999999", "CardValue": "CardValue": 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222. Objekte, ["{" Cardname ":" Bankcard1 "," Cardcode ":" 8888888888 "," Cardvalue ": 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999. JSON String Array.Im Folgenden werden verschiedene Möglichkeiten zusammengefasst, um Java in JSON -Strings umzuwandeln:
1. Konvertieren Sie das Java -Objekt in die JSON -String
2. Generieren Sie die JSON -String durch JsonObject
3.. Erzeugen Sie JSON -Saiten durch JSON -Saiten
Der Code wird über das Fastjson -Paket von Alibaba implementiert.
Der Code ist wie folgt:
1. Personenklasse, Liste mit CRAD enthalten
Paket com.doit8.test.jsontest.pojo; Import Java.util.ArrayList; importieren java.util.list; public class Person {private String -Benutzername; private Zeichenfolge E -Mail; privater String Sex; privates int Alter; private list <Card> cardList = new ArrayList <Card> (); public String getUnername () {return userername; } public void setUnername (String -Benutzername) {this.username = userername; } public String getemail () {E -Mail zurückgeben; } public void setemail (String -E -Mail) {this.email = E -Mail; } public String getSex () {Return Sex; } public void setsex (String sex) {this.sex = sex; } public int getage () {return ay; } public void setage (int age) {this.age = älter; } public List <Card> getCardList () {return cardList; } public void setCardList (Liste <Card> cardlist) {this.cardlist = cardList; }}2. Kartenklasse
Paket com.doit8.test.jsontest.pojo; öffentliche Klassenkarte {private String CardName; private String Cardcode; privates Ganzzahl CardValue; public String getCardName () {return cardName; } public void setCardName (String CardName) {this.cardName = cardName; } public String getCardCode () {return cardcode; } public void setCardCode (String CardCode) {this.cardcode = cardcode; } public Integer getCardValue () {return cardValue; } public void setCardValue (Integer cardValue) {this.cardValue = cardValue; }}3. JSON -Verarbeitungstestklasse
Paket com.doit8.test.jsontest; Import Java.util.ArrayList; importieren java.util.list; Import com.alibaba.fastjson.json; Import com.alibaba.fastjson.jsonArray; Import com.alibaba.fastjson.jsonObject; import com.doit8.test.jsontest.pojo.card; import com.doit8.test.jsontest.pojo.person; /*** JSON -Konvertierung**/public class App {public static void main (String [] args) {// 1. Generieren Sie eine JSON -Zeichenfolge durch ein Objekt, und das Objekt enthält ein Array von Objekten, die in eine JSON -Zeichenfolge konvertiert wurden. Person Person = New Person (); Person.Setusername ("xiejava"); Person.SetSex ("Mann"); Person.Setage (38); Person.setemail ("[email protected]"); Card card1 = new Card (); card1.setCardName ("bankcard1"); Card1.SetCardCode ("888888888"); Card1.SetCardValue (99999999999); Card card2 = new Card (); CARD2.SETCARDNAME ("BankCard1"); CARD2.SETCARDCODE ("99999999999"); CARD2.SETCARDVALUE (22222222222); // Objektarray -Liste <Card> karten = new ArrayList <Card> (); cards.add (card1); cards.add (card2); Person.SetCardList (Karten); String json = json.tojson (Person) .ToString (); System.out.println (JSON); // 2. Generieren Sie die JSON -String über JSON -Objekte jsonObject Jobject = new JsonObject (); Jobject.put ("Benutzername", "Xiejava"); Jobject.put ("Sex", "Mann"); Jobject.put ("Alter", 38); Jobject.put ("E -Mail", "[email protected]"); // Wick -Objektarray durch JsonArray JsonArray Jarray = New JsonArray (); jarray.addall (karten); Jobject.put ("CardList", Jarray); String json2 = Jobject.tojonstring (); System.out.println (JSON2); // 3. Generieren Sie JSON String über JSON -Objekt JSONObject Jobject2 = new JSONObject (); Jobject2.put ("Benutzername", "Xiejava"); Jobject2.put ("Sex", "Mann"); Jobject2.put ("Alter", 38); Jobject2.put ("E -Mail", "[email protected]"); // JSON -String -String -String -Cardjonstr1 = "{/" CardName/":/" Bankcard1/",/" CardCode/":/" 88888888/",/" Cardvalue/": 999999999}"; String cardjJSONSON2 = "{/" CARDNAME/":/" bankard2/",/" cardcode/":/" 99999999/",/" cardValue/": 222222222}"; Json.ParseObject (Cardjonstr1); JsonArray jarray2 = new JsonArray (); // Konvertieren Sie die JSON -String in ein JSON -Objekt und fügen Sie sie zu JSONArray hinzu. [Beachten Sie, dass Sie die Methode jSON.ParseObject () verwenden müssen, um es in ein JSON -Objekt umzuwandeln, andernfalls ist es immer noch eine Zeichenfolge, und es wird ein doppeltes Zitat beim Konvertieren in eine JSON -Zeichenfolge sein. ] Jarray2.Add (json.ParseObject (Cardjonstr1)); Jarray2.Add (json.ParseObject (Cardjonstr2)); Jobject2.put ("CardList", Jarray2); String json3 = Jobject2.tojonstring (); System.out.println (JSON3); }}Einführung des Fastjson -Pakets in pom.xml
<Depopenty> <gruppe> com.alibaba </Groupid> <artifactId> fastjson </artifactId> <version> 1.2.15 </Version> </abhängig>
Auslaufergebnisse
{"CardList": [{"Cardname": "Bankcard1", "Cardcode": "8888888888", "CardValue": 99999999}, {"Cardname": "Bankcard1", "Cardcode ":" 9999999999 "," CardValue ": 22222222222}]," Sex ":" Mann "," Alter ": 38," E -Mail ":" [email protected] "," Benutzername ":" Xiejava "}
{"CardList": [{"Cardcode": "8888888888", "CardName": "Bankcard1", "Cardvalue": 999999999}, {"Cardcode": "999999999", Cardna ME ":" Bankcard1 "," CardValue ": 22222222222}]," Sex ":" Mann "," Alter ": 38," E -Mail ":" [email protected] "," Benutzername ":" Xiejava "}
{"CardList": [{"Cardname": "Bankcard1", "Cardcode": "8888888888", "CardValue": 99999999}, {"Cardname": "Bankcard2", "Cardcode ":" 99999999999 "," CardValue ": 2222222222}]," Sex ":" Mann "," Alter ": 38," E -Mail ":" [email protected] "," Benutzername ":" Xiejava "}