2017-10-10 153 views
-5

我有以下的JSONObject如何从JSONObject的元素获取并写入到文件

   {"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" 
       } 
      ]} 

现在我想从这个对象获取元素,并将其写入文件。 例如,对于该块

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

我想在文件作为 ^ FT 20,373^A0N,28个,21^FDStreet1^FS来写。

请帮我做到这一点。

+0

这不是一个编码服务。自己做一些工作。 – Sedrick

+0

你能检查我的答案吗? – KeLiuyue

回答

0

如何做到这一点?

  • 如果你在你的代码满足{},您可以使用JSONObject解析它。

  • 如果您在代码中遇到[],则可以使用JSONArray来解析它。

  • 如果您在代码中遇到[],则可以使用for loop来获取其中的值。您的代码中应该使用try catch

在您的代码中试试这个。

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(); 
} 

注意

  • 而且在代码中使用optStringoptJSONObject。如果formatnull,它不会返回错误。

  • 而且你可以判断JSONArraylength不是0而不是null在代码中。

+0

感谢您的帮助@KeLiuyue,我可以获取数据,但我应该如何将它写入文件。JSONArray中可能包含更多格式或maynot。基本上我有写从这个的JSONObject一个文件,如 '^'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

从JsonArray

得到这个元素
JsonObject yourElement = yourJsonArray.get(index); 

简单地说,你可以使用GSON库解析JSON对象。

public class Staff { 

private String name; 
private String value; 

//... 

,并使用GSON

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

之后,你可以通过使用人员类中自定义toString()方法在文件中写道。 P.S.将JsonObject转换为String也可以使用toString()方法。