2017-10-10 5 views
-5

i une suite JSONObjectcomment obtenir des éléments de JSONObject et l'écrire dans un fichier

   {"elements": [ 
       { 
       "name": "StartLabelFormat", 
       "value": "^XA" 
       }, 
       { 
       "name": "shipperAddressLine1", 
       "value": "Street1", 
       "format": {"Text": { 
        "orientation": "N", 
        "height": "28", 
        "width": 20, 
        "fontname": 0, 
        "y": 373, 
        "x": 20 
       }} 
       }, 
       { 
       "name": "EndLabelFormat", 
       "value": "^XZ" 
       } 
      ]} 

Maintenant, je veux obtenir élément de cet objet et d'écrire dans un fichier. Par exemple, pour ce bloc

{ 
       "name": "shipperAddressLine1", 
       "value": "Street1", 
       "format": {"Text": { 
        "orientation": "N", 
        "height": "28", 
        "width": 21, 
        "fontname": 0, 
        "y": 373, 
        "x": 20 
       }} 
       }, 

Je veux écrire dans le fichier comme ^ FT 20, 373^A0N, 28, 21^FDStreet1^FS.

S'il vous plaît aidez-moi à le faire.

+0

Ceci n'est pas un service de codage. Faites-en un peu vous-même. – Sedrick

+0

Pourriez-vous vérifier ma réponse? – KeLiuyue

Répondre

0

Comment faire?

  • Si vous rencontrez {} dans votre code, vous pouvez utiliser JSONObject pour l'analyser. Si vous rencontrez [] dans votre code, vous pouvez utiliser JSONArray pour l'analyser. Et si vous rencontrez [] dans votre code, vous pouvez utiliser for loop pour obtenir de la valeur. Vous devez utiliser try catch dans votre code.

Essayez ceci dans votre code.

try { 
     JSONObject jsonObject = new JSONObject(response); 
     JSONArray elements = jsonObject.getJSONArray("elements"); 
     for (int i = 0; i < elements.length(); i++) { 
      JSONObject jsonObject1 = elements.getJSONObject(i); 
      String name = jsonObject1.optString("name"); 
      String value = jsonObject1.optString("value"); 
      JSONObject format = jsonObject1.optJSONObject("format"); 
      JSONObject Text = format.optJSONObject("Text"); 
      String orientation = Text.optString("orientation"); 
      String height = Text.optString("height"); 
      String width = Text.optString("width"); 
     } 
} catch (JSONException e) { 
     e.printStackTrace(); 
} 

Remarque

  • Et utiliser optString et optJSONObject dans votre code. Si format est null, il ne retournera pas d'erreur.

  • Et vous pouvez juger que JSONArraylength n'est pas 0 et non null dans le code.

+0

Merci pour l'aide @KeLiuyue, je suis en mesure d'obtenir des données, mais comment dois-je l'écrire dans le fichier.Il y a plus d'éléments dans JSONArray qui peut contenir des formats ou maynot.Fondamentalement, je dois écrire un fichier de ce JsonObject, comme ''^XA '^' LH16,12 '^'^LL1212' FT 20, 313^A0N, 28, 20^FD Street1^FS' '^FT 20, 343^A0N, 28, 20^FD US^FS' '^ XZ – neo

-1

Pour obtenir cet élément de JsonArray

JsonObject yourElement = yourJsonArray.get(index); 

Simplement, vous pouvez utiliser gson bibliothèque pour l'analyse syntaxique JSON aux objets.

public class Staff { 

private String name; 
private String value; 

//... 

et utiliser Gson

String jsonInString = " { 
      "name": "shipperAddressLine1", 
      "value": "Street1" 
      }"; 
Staff staff = gson.fromJson(yourElement.toString() , Staff.class); 

Après cela, vous pouvez écrire dans le fichier en utilisant votre méthode toString personnalisée() dans la classe du personnel. P.S. Pour convertir JsonObject en String, vous pouvez aussi utiliser la méthode toString().