Java 将json字符串转换为对象数组
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18458637/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 01:47:42 来源:igfitidea点击:
Convert json String to array of Objects
提问by Hymanyesind
I have json array as string
我有 json 数组作为字符串
[
{
"id":"1",
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"id":"2",
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"id":"3",
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"id":"4",
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"id":"5",
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
}
]
I want to convert this string to each json object. I have a class address. How would i convert this json string to object
我想将此字符串转换为每个 json 对象。我有一个班级地址。我将如何将此 json 字符串转换为对象
I tried
我试过
Address address = gson.fromJson(addressJson, Address.class);
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
com.google.gson.Gson.fromJson(Gson.java:803)
com.google.gson.Gson.fromJson(Gson.java:768)
com.google.gson.Gson.fromJson(Gson.java:717)
com.google.gson.Gson.fromJson(Gson.java:689)
采纳答案by Narendra Pathai
Try this
尝试这个
Address[] address = gson.fromJson(addressJson, Address[].class);