নিম্নলিখিত .json ফাইল দেওয়া হয়েছে:
[
{
"name" : "New York",
"number" : "732921",
"center" : [
"latitude" : 38.895111,
"longitude" : -77.036667
]
},
{
"name" : "San Francisco",
"number" : "298732",
"center" : [
"latitude" : 37.783333,
"longitude" : -122.416667
]
}
]
আমি উপস্থিত তথ্য উপস্থাপনের জন্য দুটি ক্লাস প্রস্তুত:
public class Location {
public String name;
public int number;
public GeoPoint center;
}
...
public class GeoPoint {
public double latitude;
public double longitude;
}
জ্যাসন ফাইল থেকে সামগ্রীটি বিশ্লেষণের জন্য আমি জ্যাকসন ২.২.x ব্যবহার করি এবং নিম্নলিখিত পদ্ধতিটি প্রস্তুত করি:
public static List<Location> getLocations(InputStream inputStream) {
ObjectMapper objectMapper = new ObjectMapper();
try {
TypeFactory typeFactory = objectMapper.getTypeFactory();
CollectionType collectionType = typeFactory.constructCollectionType(
List.class, Location.class);
return objectMapper.readValue(inputStream, collectionType);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
যতক্ষণ আমি center
সম্পত্তিটি ত্যাগ করি ততক্ষণে সমস্ত সামগ্রী পার্স করা যায়। যাইহোক, আমি যখন ভূ-স্থানাঙ্কগুলি পার্স করার চেষ্টা করি তখন আমি নীচের ত্রুটি বার্তাটি দিয়ে শেষ করি:
com.fasterxML.jackson.databind.JsonMappingException:
com.example.GeoPoint এর উদাহরণটি deserialize করতে পারে না [ লাইন: 5, কলাম: 25]
(রেফারেন্স চেইনের মাধ্যমে: com.example.Location ["কেন্দ্র"]]
center
অবৈধ অবজেক্টগুলির একটি অ্যারে। প্রতিস্থাপন করার চেষ্টা করুন [
এবং ]
সঙ্গে {
এবং }
প্রায় JSON স্ট্রিংকে মধ্যে longitude
এবং latitude
তাই তারা বস্তু হতে হবে।