簡體   English   中英

從json數組中刪除引號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM