我有一个以下的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。
请帮我这样做。
答案 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();
}
注意强>
在代码中使用optString
和optJSONObject
。如果format
为null
,则不会返回错误。
您可以判断代码中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()方法。