解析构造奇怪的Json/Gson
我会保持简短,我对一些布局非常糟糕的Json有问题(从我可以告诉大家的情况来看),我正在从web服务中退出,我是java/android/Json新手,因此我们将非常感谢您的帮助,Json的结构是:解析构造奇怪的Json/Gson,json,gson,Json,Gson,我会保持简短,我对一些布局非常糟糕的Json有问题(从我可以告诉大家的情况来看),我正在从web服务中退出,我是java/android/Json新手,因此我们将非常感谢您的帮助,Json的结构是: {“游标”: >{“currentPageIndex”:0, >“estimatedResultCount”:32, >“页数”:{ >“标签”:1, >“开始”:0}, >“responseDetails”:空, >“responseStatus”:200},“结果”:[ >{“准确性”:2414
{“游标”:
>{“currentPageIndex”:0,
>“estimatedResultCount”:32,
>“页数”:{
>“标签”:1,
>“开始”:0},
>“responseDetails”:空,
>“responseStatus”:200},“结果”:[
>{“准确性”:24140,
>“地址行”:
>{“地址1”:“门牌号”,
>“地址2”:“一条街”,
>“地址3”:“一座城市”,
>“地址4”:“一个国家”,
>“地址5”:“一个国家”,
>“邮政编码”:“123456”},
>“城市”:“一座城市”,
>“国家”:“一个国家”,
>“ddUrl”:”http://link1.com",
>“ddUrlFromHere”:http://link2.com",
>“ddUrlToHere”:http://link3.com",
>“lat”:54.52909583,
>“液化天然气”:-0.45554611,
>“电话号码”:
>{“编号”:“123456789”,
>“类型”:“工作”},
>“地区”:“中国”,
>“staticMapUrl”:http://link4.com",
>“街道地址”:“一个门牌号,一条街道,一个城市,一个州,
> 123456",
>“标题”:“阿里巴巴地毯”,
>“标题信息”:“阿里巴巴
>地毯“,
>“url”:”http://link5.com"}]}
我正在尝试使用以下方法对其进行分析:
import java.util.List;
public class ParseOffers {
private List<results> results;
public static class cursor {
private int currentPageIndex;
private int estimatedResultCount;
private pages Pages;
private String ResponseDetails;
private int ResponseStatus;
public class pages {
private int label;
private int start;
}
}
public static class results {
private int Accuracy;
private addressLines AddressLines;
private String city;
private String country;
private String ddUrl;
private String ddUrlFromHere;
private String ddUrlToHere;
private double lat;
private double lng;
private phoneNumbers data;
private String region;
private String staticMapUrl;
private String streetAddress;
private String title;
private String titleNoFormatting;
private String url;
public class addressLines {
private String Address1;
private String Address2;
private String Address3;
private String Address4;
private String Address5;
private String Postcode;
}
public class phoneNumbers {
private String number;
private String type;
}
}
}
import java.util.List;
公开课{
私人名单结果;
公共静态类游标{
私有int-currentPageIndex;
私有int估计结果计数;
私人网页;
私有字符串响应详细信息;
私人住宅;
公共类页面{
私有int标签;
私人int启动;
}
}
公共静态类结果{
私有整数精度;
专用地址线;
私人城市;
私人国家;
私有字符串ddUrl;
私有字符串ddUrlFromHere;
私有字符串ddUrlToHere;
私人双lat;
私人双液化天然气;
私人电话号码数据;
私有字符串区域;
私有字符串staticMapUrl;
私有字符串streetAddress;
私有字符串标题;
私有字符串标题信息;
私有字符串url;
公共类地址线{
私有字符串地址1;
私有字符串地址2;
私有字符串地址3;
私有字符串地址4;
私有字符串地址5;
私人字符串邮政编码;
}
公共类电话号码{
私有字符串编号;
私有字符串类型;
}
}
}
谢谢。问题很简单,Java数据结构与JSON不匹配,有几种不同的方式,包括缺少游标字段,字段名与JSON元素名不匹配 下面是一个与JSON匹配的Java数据结构的最小修改版本
public class ParseOffers
{
private cursor cursor;
private List<results> results;
public static class cursor
{
private int currentPageIndex;
private int estimatedResultCount;
private pages pages;
private String responseDetails;
private int responseStatus;
public class pages
{
private int label;
private int start;
}
}
public static class results
{
private int accuracy;
private addressLines addressLines;
private String city;
private String country;
private String ddUrl;
private String ddUrlFromHere;
private String ddUrlToHere;
private double lat;
private double lng;
private phoneNumbers phoneNumbers;
private String region;
private String staticMapUrl;
private String streetAddress;
private String title;
private String titleNoFormatting;
private String url;
public class addressLines
{
private String Address1;
private String Address2;
private String Address3;
private String Address4;
private String Address5;
private String Postcode;
}
public class phoneNumbers
{
private String number;
private String type;
}
}
}
公共类
{
私有游标;
私人名单结果;
公共静态类游标
{
私有int-currentPageIndex;
私有int估计结果计数;
私人网页;
私有字符串响应详细信息;
私人住宅;
公共类页面
{
私有int标签;
私人int启动;
}
}
公共静态类结果
{
私有整数精度;
专用地址线;
私人城市;
私人国家;
私有字符串ddUrl;
私有字符串ddUrlFromHere;
私有字符串ddUrlToHere;
私人双lat;
私人双液化天然气;
私人电话号码;
私有字符串区域;
私有字符串staticMapUrl;
私有字符串streetAddress;
私有字符串标题;
私有字符串标题信息;
私有字符串url;
公共类地址线
{
私有字符串地址1;
私有字符串地址2;
私有字符串地址3;
私有字符串地址4;
私有字符串地址5;
私人字符串邮政编码;
}
公共类电话号码
{
私有字符串编号;
私有字符串类型;
}
}
}
虽然这个Java数据结构可以工作,但它仍然有一些我想改变的奇怪之处
奇怪的是,有些嵌套类是静态的,有些则不是。我会将其更改为没有任何嵌套类
奇怪的是,有些类名与字段(和JSON元素)名完全匹配。我会使用更常见的命名约定。例如,我将“cursor”类的名称更改为“cursor”。如何解析它?手动还是使用标准库
public class ParseOffers
{
private cursor cursor;
private List<results> results;
public static class cursor
{
private int currentPageIndex;
private int estimatedResultCount;
private pages pages;
private String responseDetails;
private int responseStatus;
public class pages
{
private int label;
private int start;
}
}
public static class results
{
private int accuracy;
private addressLines addressLines;
private String city;
private String country;
private String ddUrl;
private String ddUrlFromHere;
private String ddUrlToHere;
private double lat;
private double lng;
private phoneNumbers phoneNumbers;
private String region;
private String staticMapUrl;
private String streetAddress;
private String title;
private String titleNoFormatting;
private String url;
public class addressLines
{
private String Address1;
private String Address2;
private String Address3;
private String Address4;
private String Address5;
private String Postcode;
}
public class phoneNumbers
{
private String number;
private String type;
}
}
}