Hier, lorsque nous avons été interfacés avec le système de pairs, le système de pairs n'a pas pu gérer la chaîne JSON que nous avons passé. Plus tard, la raison en était qu'il devrait y avoir un tableau d'objets JSON dans la chaîne JSON que nous avons passé. Parce que notre chaîne JSON est dans la table, nous l'avons retirée comme une chaîne JSON et l'avons mise dans le tableau JSON, nous l'avons donc mis en double citation. Le pair pense que c'est une chaîne, pas un objet JSON, donc il ne peut pas être traité.
[{"Cardname": "BankCard1", "Cardcode": "888888888", "CardValue": 999999999}, {"CardName": "BankCard2", "Cardcode": "999999999" Objets, ["{" cardname ":" BankCard1 "," Cardcode ":" 888888888 "," CardValue ": 999999999}", "{" CardName ":" Bankcard2 "," Cardcode ":" 999999999 "," Cardvalue ": 222222222222}" Tableau de chaîne JSON.Ce qui suit résume plusieurs façons de convertir Java en cordes JSON:
1. Convertir l'objet Java en chaîne JSON
2. Générer la chaîne JSON via JSONObject
3. Générez des cordes JSON à travers des cordes JSON
Le code est implémenté via le package FastJSON d'Alibaba.
Le code est le suivant:
1. Classe de personne, liste contenant un berce
package com.doiit8.test.jSontest.pojo; import java.util.arraylist; Importer java.util.list; Personne de classe publique {nom d'utilisateur de chaîne privée; e-mail de chaîne privée; Sexe à cordes privées; Âge privé; Liste privée <card> cardList = new ArrayList <Card> (); public String getUserName () {return username; } public void setUsername (String username) {this.userName = username; } public String getEmail () {return e-mail; } public void setEmail (chaîne e-mail) {this.email = e-mail; } public String getSEX () {return sexe; } public void setSex (String Sex) {this.sex = sexe; } public int getage () {return âge; } public void Setage (int Age) {this.age = age; } public list <card> getCardList () {return cardlist; } public void setCardlist (list <card> cardlist) {this.cardlist = cardlist; }}2. Classe de cartes
package com.doiit8.test.jSontest.pojo; CARD PUBLIQUE CARD {Private String CardName; Cardcode à chaîne privée; Cardvalue entier privé; 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 entier getCardValue () {return cardValue; } public void setCardValue (Integer cardValue) {this.cardValue = cardValue; }}3. Classe de test de traitement JSON
Package com.doiit8.test.jSontest; import java.util.arraylist; Importer java.util.list; import com.alibaba.fastjson.json; import com.alibaba.fastjson.jsonArray; import com.alibaba.fastjson.jsonObject; import com.doiit8.test.jSontest.pojo.card; import com.doiit8.test.jSontest.pojo.eson; / ** * JSON Conversion * * / public class App {public static void main (String [] args) {// 1. Générez une chaîne JSON via un objet, et l'objet contient un tableau d'objets converti en une chaîne JSON. Personne personne = new personne (); Person.SetUsername ("xiejava"); personne.setSEX ("man"); Person.Setage (38); personne.setemail ("[email protected]"); Card Card1 = new Card (); card1.setCardName ("BankCard1"); card1.setcardcode ("888888888"); card1.setCardValue (9999999999); Card Card2 = new Card (); card2.setCardName ("BankCard1"); card2.setCardCode ("9999999999"); card2.setCardValue (22222222222); // Liste des objets <card> cartes = new ArrayList <card> (); cartes.add (card1); cartes.add (card2); personne.setCardList (cartes); String json = json.tojson (personne) .toString (); System.out.println (JSON); // 2. Générer la chaîne JSON via des objets JSON JSONObject Jobject = new JSONObject (); jobject.put ("nom d'utilisateur", "xiejava"); Jobject.put ("Sex", "Man"); Jobject.put ("Age", 38); jobject.put ("email", "[email protected]"); // Enveloppez le tableau d'objets via JSONArray JSONArray Jarray = new JSONArray (); jarray.addall (cartes); jobject.put ("cardlist", Jarray); String JSON2 = jobject.tojSontring (); System.out.println (JSON2); // 3. Générer la chaîne JSON via un objet JSON JSONObject Jobject2 = new JSONObject (); jobject2.put ("nom d'utilisateur", "xiejava"); jobject2.put ("sexe", "homme"); jobject2.put ("âge", 38); jobject2.put ("e-mail", "[email protected]"); // Construire JSON String String cardjsontonst1 = "{/" cardname / ": /" BankCard1 / ", /" cardcode / ": /" 88888888 / ", /" cardValue / ": 99999999}"; String cardjsontr2 = "{/" cardname / ": /" Bankcard2 / ", /" cardcode / ": /" 999999999 / ", /" cardValue / ": 2222222222}"; JSON.ParseObject (CardjSontr1); JSONArray JArray2 = new JSONArray (); // Convertissez la chaîne JSON en un objet JSON et ajoutez-le à JSONArray. [Notez que vous devez utiliser la méthode JSON.ParseObject () pour le convertir en un objet JSON, sinon ce sera toujours une chaîne, et ce sera une double citation lors de la convertissement en une chaîne JSON. ] jArray2.Add (json.parseObject (cardjSontr1)); JARRAY2.ADD (JSON.ParseObject (CardjSontr2)); jobject2.put ("cardlist", jArray2); String JSON3 = Jobject2.TojSontring (); System.out.println (JSON3); }}Présentation du package FastJson dans POM.xml
<dependency> <proupId> com.alibaba </rom grouped> <Artifactid> FastJson </refactId> <DERNÉRATION> 1.2.15 </DERNIFRATION> </DENDENCENCE>
Résultats en cours d'exécution
? ":" 9999999999 "," CardValue ": 222222222222}]," Sex ":" Man "," Age ": 38," Email ":" [email protected] "," nom d'utilisateur ":" xiejava "}
? Moi ":" BankCard1 "," CardValue ": 22222222222}]," Sex ":" Man "," Age ": 38," Email ":" [email protected] "," nom d'utilisateur ":" xiejava "}
? ":" 99999999999 "," CardValue ": 22222222222}]," Sex ":" Man "," Age ": 38," Email ":" [email protected] "," nom d'utilisateur ":" xiejava "}