如何从JSONObject获取元素并将其写入文件

时间:2017-10-10 13:22:56

标签: java stringbuilder

我有一个以下的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"
              }
            ]}

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

 {
                "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。

请帮我这样做。

2 个答案:

答案 0 :(得分: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,则不会返回错误。

  • 您可以判断代码中JSONArray的{​​{1}}不是0而不是length

答案 1 :(得分:-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);

之后,您可以使用Staff类中的自定义toString()方法在文件中写入。 附:要将JsonObject转换为String,您还可以使用toString()方法。