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