我正在尝试将json解析为java。
根据 jsonlint.com,我有以下有效的 json 字符串
private final static String LOC_JSON =
"["
+"{"
+" \"lat1\": 39.737567,"
+" \"lat2\": 32.7801399,"
+" \"long1\": -104.98471790000002,"
+" \"long2\": -96.80045109999998"
+"},"
+" ["
+" {"
+" \"lat\": {"
+" \"b\": 38.88368709500021,"
+" \"d\": 40.620468491667026"
+" },"
+" \"long\": {"
+" \"b\": -105.75306170749764,"
+" \"d\": -104.675854661387"
+" }"
+" }"
+" ]"
+"]";
我正在尝试将其解析为一个对象,但出现以下错误。“预期为 BEGIN_OBJECT,但在第 1 行第 2 列是 BEGIN_ARRAY”
Gson gson = new Gson();
BoxSearch b = gson.fromJson( LOC_JSON, BoxSearch.class );
BoxSearch 由这个组成。
private Number lat1;
private Number lat2;
private Number long1;
private Number long2;
private Boxes[] boxes;
Boxes 是定义相同的纬度对象和经度对象。
private String b;
private String d;
我可以将更高级别的属性(lat1、lat2、long1 和 long2)解析为一个更简单的 BoxSearch 对象,它只有这 4 个属性。当 json 和对象更复杂时,麻烦就来了。甚至有可能做我正在尝试的事情吗?
我希望我已经提供了足够的信息来获得一些帮助。如果需要,我很乐意提供更多信息甚至是测试项目。我将其作为junit测试运行。
谢谢。