如何从 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();
}
备注
并在您的代码中使用 optString
和 optJSONObject
。如果format
为null
,则不会return错误。
并且在代码中可以判断出JSONArray
的length
不是0也不是null
.
我有一个以下的 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();
}
备注
并在您的代码中使用
optString
和optJSONObject
。如果format
为null
,则不会return错误。并且在代码中可以判断出
JSONArray
的length
不是0也不是null
.