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

how to get elements from JSONObject and write it to file

我有一个以下的 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.

请帮我做一下。

从 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 class 中的自定义 toString() 方法写入文件。 P.S。要将 JsonObject 转换为 String,您还可以使用 toString() 方法。

怎么做?

  • 如果你的代码中遇到{},你可以使用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,则不会return错误。

  • 并且在代码中可以判断出JSONArraylength不是0也不是null.