[英]Remove quotes from json array
我有以下問題:
我在Java中有一個ArrayList。
我將ArrayList轉換為這樣的字符串:
Gson gson = new Gson();
String feeds += gson.toJson(arrayList);
結果如下:
[{"status":"ERROR","position":"[48.2748206,8.849529799999999]"}]
但我需要以下輸出:
[{"status":"ERROR","position": [48.2748206,8.849529799999999]}]
頭寸價值不應帶引號。 我怎么能意識到呢?
提前謝謝了
招呼
使用String#replaceAll()
方法替換位置值周圍的雙引號。 只需創建一個正則表達式並用空字符串替換雙引號即可。
嘗試使用正向后向和正向前向。
樣例代碼:
String json = "[{\"status\":\"ERROR\",\"position\":\"[48.2748206,8.849529799999999]\"}]";
String regex = "(?<=\"position\":)\"|\"(?=\\}\\])";
System.out.println(json.replaceAll(regex, ""));
這是演示
也嘗試分組和替換。
樣例代碼:
String json = "[{\"status\":\"ERROR\",\"position\":\"[48.2748206,8.849529799999999]\"}]";
String regex = "(\"position\":)\"([^\"]*)\"";
System.out.println(json.replaceAll(regex, "$1$2"));
這是演示
我認為您不應該這樣,也許您應該更改工作結構,但是如果您想手動鍵入內容,則可以這樣做。 假設您有一個類似JSONArray的對象:
JSONArray arr=[{"status":"ERROR","position":"[48.2748206,8.849529799999999]"}];
然后,您可以像這樣取出JSONObject:
Iterator iterator = array.iterator();
while(iterator.hasNext()){
Gson gson = new Gson();
ClassToCastInto obj = gson.fromJson((JsonElement)iterator.next();, ClassToCastInto.class);
System.out.println(obj.someProperty);
}
考慮使用Gson JsonWriter :
StringWriter buffer = new StringWriter();
JsonWriter writer = new JsonWriter(buffer);
writer.beginArray().beginObject();
writer.name("status").value("ERROR");
writer.name("position").beginArray();
for (double value : Arrays.asList(48.2748206, 8.849529799999999)) {
writer.value(value);
}
writer.endArray().endObject().endArray().close();
String json = buffer.toString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.