我有一个json对象,里面可以有一个属性,可以是数组或布尔值。所以我的问题是如何在解析它时解析这个json而没有问题?
以下是我所说的:
{
"offerId": "24",
"image1": "1452678081_56961bc195cf8.jpg",
"image2": "1452678081_56961bc195f38.jpg",
"image3": "1452678081_56961bc196124.jpg",
"featured": false,
"hide_button": false,
"categoryId": "1",
"locations": [
{
"address": "Problemveien 13, 0313 Oslo",
"long": "10.722052800000029",
"latitude": "59.9409999"
},
{
"address": "Akersgata 68, 0180 Oslo",
"long": "10.744572199999993",
"latitude": "59.9174608"
},
{
"address": "Trimveien 4, 0372 Oslo",
"long": "10.724201200000039",
"latitude": "59.9466293"
},
{
"address": "Sandakerveien 116, 0484 Oslo",
"long": "10.769448300000022",
"latitude": "59.9483484"
},
{
"address": "Vulkan 15, 0178 Oslo",
"long": "10.75169040000003",
"latitude": "59.9223593"
}
]
}
这是对象在没有位置数组时的外观:
{
"offerId": "25",
"image1": "1452678113_56961be1d6774.jpg",
"image2": "1452678113_56961be1d694f.jpg",
"image3": "1452678113_56961be1d6ae0.jpg",
"featured": false,
"hide_button": false,
"categoryId": "1",
"locations": false
}
再一次,我如何解析locations
元素,因为它可以是布尔值或数组?有没有办法用google gson解析这个?
由于
答案 0 :(得分:0)
我不明白你想要什么,但试试这个。 它可以解析任何json对象,但是你必须在获取位置时检查类型和强制转换。
class JavaBean {
Object locations;
}
答案 1 :(得分:0)
创建如下的课程
{
"start": "node --enable-fips app.js"
}
你将能够与Gson解析。
注意强>
我建议您重命名您的位置对象中的属性public class Location {
String address;
String long; // change the name of variable here and in json as well.
String latitude;
}
public class MyClass {
String offerId;
String image1;
String image2;
String image3;
boolean featured;
boolean hide_button;
String categoryId;
List<Location> locations;
}
,因为long
是java中的关键字,而ide会抛出错误。
我还建议您将long
数组设为空json数组而不是发送false,否则Gson会抛出异常。
希望这会对你有所帮助。