如何在JsonArray中将空字符串转换为null(com.google.gson)

时间:2018-01-28 03:59:42

标签: java json gson jsonparser

我的JSON对象有一些空值(“”)所以转换它时会抛出错误。

这是我的JSON

{
    "Animals": [
        {
            "id": 6140,
            "Name": ""
        },
        {
            "id": 6144,
            "Name": "Lion"
        }
    ]
}

我的代码:

JsonParser parser=new JsonParser();
JsonArray myarray=parser.parse(json).getAsJsonArray();

我收到错误

  

com.google.gson.stream.malformedjsonexception

如何在将JSON对象解析为JSONArray时将空字符串值转换为null?

我希望最终结果是

[{id=6140, Name=null},{id=6144, Name="Lion"}] 

1 个答案:

答案 0 :(得分:-2)

这种情况正在发生,因为您提供的json不是json数组,它是json对象。你应该做的

    JsonParser json = new JsonParser();
    JsonObject myJsonObject = json.parse(json).getAsJsonObject();
    JsonArray jsonArray = myJsonObject.getAsJsonArray("Animals");