Почти все предоставленные ответы требуют полной десериализации JSON в объект Java перед тем, как получить доступ к значению интересующего свойства. Другой альтернативой, которая не идет по этому пути, является использование JsonPATH , который похож на XPath для JSON и позволяет перемещаться по объектам JSON.
Это спецификация и хорошие люди в JayWay создали Java-реализацию для спецификации, которую вы можете найти здесь: https://github.com/jayway/JsonPath
Поэтому, чтобы использовать его, добавьте его в свой проект , например:
com.jayway.jsonpath
json-path
${version}
и использовать:
String pageName = JsonPath.read(yourJsonString, "$.pageInfo.pageName");
String pagePic = JsonPath.read(yourJsonString, "$.pageInfo.pagePic");
String post_id = JsonPath.read(yourJsonString, "$.pagePosts[0].post_id");
и т. д. ...
Проверьте дополнительную страницу спецификации JsonPath для получения дополнительной информации о других способах к поперечному JSON.
Проблема заключается в том, как вы получаете координаты - e.getX()
и e.getY()
-, потому что они относятся к JFrame
(верхний левый угол JFrame равен (0,0)).
Чтобы получить координаты пикселя, используйте:
public void mouseClicked(MouseEvent e) {
Point p = e.getLocationOnScreen();
System.out.println("Pixel:" + p.x + "," + p.y);
try {
System.out.println(getPixel(p.x, p.y));
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
[Extra] прочитайте это, чтобы улучшить другие вещи: Почему моя мышца отстает, когда я запускаю эту маленькую мышь