JSON Array to Java objects
39,905
Solution 1
assuming your json string data is stored in variable called jsonStr
:
String jsonStr = getJsonFromSomewhere();
Gson gson = new Gson();
Click clicks[] = gson.fromJson(jsonStr, Click[].class);
Solution 2
Check out the Gson API and some examples. I've put the links below!
String jsonString = //your json String
Gson gson = new Gson();
Type typeOfList = new TypeToken<List<Map<String, Integer>>>() {}.getType();
List<Map<String, Integer>> list = gson.fromJson(jsonString, typeOfMap);
List<Click> clicks = new ArrayList<Click>();
for(int i = 0; i < list.size(); i++) {
int x = list.get(i).get("x");
int y = list.get(i).get("y");
clicks.add(new Click(x, y));
}
(http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/Gson.html) (http://google-gson.googlecode.com/svn/tags/1.5/src/test/java/com/google/gson/functional/MapTest.java)
Related videos on Youtube
Author by
ProblemAnswerQue
Updated on August 02, 2020Comments
-
ProblemAnswerQue almost 4 years
I need to parse a JSON file which looks like this:
[ { "y": 148, "x": 155 }, { "y": 135, "x": 148 }, { "y": 148, "x": 154 } ]
And I want to put these X-coordinates and Y-coordinates into an JavaObject Click, that class looks like this:
public class Click { int x; int y; public Click(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } }
I have looked at gson because they say it is quit easy, but I don't get it how I can do it from my file.
-
Kostas Kryptos over 9 yearsfor Jackson to work you need to also have an empty constructor for your class
-
ProblemAnswerQue over 9 yearsyeah I know Jackson exists but gson seems more userfriendly and faster in it's use but I just don't get it, User.class will be Click.class, that i already knew same in gson for as far as I figured out
-
ProblemAnswerQue over 9 yearsnow I have this: private static final String filePath = ".\\data.json"; BufferedReader br; Gson gson = new Gson(); Click click = gson.fromJson(br, Click.class); System.out.println(click); but it still says my json file has a wrong startingobject and ending object
-
haley over 9 yearsI'm not sure how BufferedReader works in that method. I didn't know you could do that. That might be why you're getting the error.
-
haley over 9 yearsAre you stuck on getting the json into a string?