java - 如何在反序列化方法中从json对象获取字符串数组

标签 java json gson json-deserialization

我有一些 json 对象

{
  "name": "John",
  "age": 29,
  "bestFriends": [
    "Stan",
    "Nick",
    "Alex"
  ]
}

这是我的 JsonDeserializer 实现:

public class CustomDeserializer implements JsonDeserializer<Person>{
    @Override
    public Person deserialize(JsonElement json, Type type, JsonDeserializationContext cnxt){
        JsonObject object = json.getAsJsonObject();
        String name = new String(object.get("name").getAsString());
        Integer age = new Integer(object.get("age").getAsInt());
        String bestFriends[] = ?????????????????????????????????
        return new Person(name, age, bestFriends);
    }
}

如何使用 GSON 库从 json 对象获取字符串数组?

非常感谢!

最佳答案

对于解串器,您只需循环 ArrayNode 并将值一个接一个地添加到 String[] 中即可。

ArrayNode friendsNode = (ArrayNode)object.get("bestFriends");
List<String> bestFriends = new ArrayList<String>();
for(JsonNode friend : friendsNode){
   bestFriends.add(friend.asText());
}
//if you require the String[]
bestFriends.toArray();

关于java - 如何在反序列化方法中从json对象获取字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48789455/

相关文章:

javascript - 使json中的url可点击

java - 尝试在 Windows 上运行 Maven 时出错

java - 当我添加 RoboBlender 时,Gradle 项目没有构建

json - MvvmCross:SimpleRestService.cs 中的 JSON 错误

java - Genson 属性读取错误

java - 如何解析键名是整数的json

java - 如何存储自定义对象的 ArrayList(地理围栏)

java - Spring AbstractAnnotationConfigDispatcherServletInitializer 未找到 WebApplicationContext : no ContextLoaderListener registered

java - 计算出 QuadCurveTo 的参数

java - 如何在 Java 中转换以数字作为字段键的 json 对象?