我使用gson将List带入String。像这样:
Gson gson = new Gson();
String youtubeListStr = gson.toJson(List<String> strList);
然后通过以下方式得到:
Gson gson = new Gson();
Type type = new TypeToken<List<String>>() {}.getType();
List<String> youtube_List = gson.fromJson(youtubeListStr, type);
for(String url : youtube_List){
println(url);
}
但我得到了结果:
{"value":"https:\/\/www.youtube.com\/embed\/mGBaWXelaM0"}
如何获取正确的网址?
https:\\www.youtube.com\embed\mGBaWXelaM0
我想像上面的结果一样打印。
答案 0 :(得分:2)
别担心,一切正常:json
xml
有一组转义字符,其中一个是\
。因此,当您将从此json
读取值时,它将是所需格式的相关网址。
UPD-2 :BTW https:\\www.youtube.com\embed\mGBaWXelaM0
- 网址不正确。它应该是:https://www.youtube.com/embed/mGBaWXelaM0
UPD :
完整代码:
List<String> strList = Arrays.asList("https://www.youtube.com/embed/mGBaWXelaM0", "https://www.youtube.com/embed/mGBaWXelaM0");
Gson gson = new Gson();
String youtubeListStr = gson.toJson(strList);
System.out.println(youtubeListStr);
Type type = new TypeToken<List<String>>() {}.getType();
List<String> youtube_List = gson.fromJson(youtubeListStr, type);
for(String url : youtube_List){
System.out.println(url);
}
将打印输出:
["https://www.youtube.com/embed/mGBaWXelaM0","https://www.youtube.com/embed/mGBaWXelaM0"]
https://www.youtube.com/embed/mGBaWXelaM0
https://www.youtube.com/embed/mGBaWXelaM0
所以一切都是正确的。
答案 1 :(得分:1)
这是正确的URI,它只有escape characters \
。
如果你想要打印值而不是整个json字符串,那么你需要用Gson解析json行并提取你想要的部分。
JsonElement element = new JsonParser().parse(url);
JsonObject object = element.getAsJsonObject();
JsonElement serviceElement = object.get("value");