如何在Android中表示随机json对象
我正在Android应用程序中使用以下库-> 我不知道如何将下面的json字符串表示成一个适当的类来抽象它如何在Android中表示随机json对象,android,json,Android,Json,我正在Android应用程序中使用以下库-> 我不知道如何将下面的json字符串表示成一个适当的类来抽象它 "random_chunks": [ { "2013-01-01T10:00:00+00:00": { "available": 61, "in_inventory": 61, "in_service": 61, "percent_in_inventory_availab
"random_chunks": [
{
"2013-01-01T10:00:00+00:00": {
"available": 61,
"in_inventory": 61,
"in_service": 61,
"percent_in_inventory_available": 100,
"percent_in_service_available": 100
}
},
基本上,我们有一个名为“random_chunks”的数组,其中包含一个动态名称为“2013-01-01T10:00:00+00:00”的对象
以下是我的想法:
public class RandomChunks {
@SerializedName("random_chunks")
private foo[] chunks;
public class foo extends Object {
// Here is where I get stuck
}
如何定位此随机名称?我不能说@SerializedName(“一些随机字符串”)。想法?你的结构有点怪异,简洁:
"random_chunks": [
{
"2013-01-01T10:00:00+00:00": { }
} ,
.... ]
在我看来,更自然的表达方式是直接使用字段:
"random_chunks": {
"2013-01-01T10:00:00+00:00": { },
"2012-01-01T10:00:00+00:00": { },
...
}
上面的JSON是一个映射,即randomChunks=Map
在您的情况下,由于无法更改格式,我相信可以(但不是很干净)将其表示为一组地图:
private Map<String, Stuff>[] weirdObjects;
private Map[]古怪对象;
实际上,所有这些地图都很无聊,只有一个键,就是你要找的那个字段。这并不是最有效的表达方式,但似乎这就是你得到的
注意:我对GSON不太熟悉,所以我不确定它是否能够处理这个问题。但是Jackson可以。2个问题:你能改变你得到的json吗?您需要使用json吗?如果您只是使用内置的json库手动执行,这将很容易实现。不幸的是,我无法更改获得的json,是的,我必须使用json。这是一个rails服务器,我们被迫使用REST服务,这是我的错误。我想问你需要使用GSON。我更喜欢只使用内置的JSONObject/JSONArray。啊,我不必这么做,但现在它已经大量集成到代码库中了。GSON库实际上包含JsonArray对象,我想知道我是否可以用它来解决这个问题。GSON非常适合序列化/反序列化,但我认为它不能与动态键一起使用。如果您可以更改json,这将很容易,但我认为您无法对其进行反序列化。