Reputation: 3373
I have json array as string
[
{
"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
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)
Upvotes: 7
Views: 24665
Reputation:
Using Jackson's
ObjectMapper
class,you can read values and map them to an object, or an array of objects.
final ObjectMapper objectMapper = new ObjectMapper();
Address [] mdls = objectMapper.readValue(addressJson, Address [].class);
For List<Address>
use:
List<Address> mdls = objectMapper.readValue(addressJson, new TypeReference<List<Address>>() {});
Upvotes: 1
Reputation: 41945
Try this
Address[] address = gson.fromJson(addressJson, Address[].class);
Upvotes: 23