道歉,如果主题标题不准确,我真的不知道如何表达它(没有双关语意)。 我必须用类似于下面的结构来解析JSON。文件中有几个这样的Date数组:每个数组都以yyyy-MM-dd形式的日期命名,但我不确切知道文件中的日期(因此我无法通过其名称)。我怎么能得到它? 我正在使用json.simple for Java来解析文件。我不希望有一个答案告诉我如何使用该库专门做,但如果有人知道,这将是一个奖励:)
"2011-05-15":[
{
"promoted_content":null,
"events":null,
"query":"AnahiHappyBDay",
"name":"AnahiHappyBDay"
},
{
"promoted_content":null,
"events":null,
"query":"Puerto Ricans",
"name":"Puerto Ricans"
},
{
"promoted_content":null,
"events":null,
"query":"Epic Movie",
"name":"Epic Movie"
},
{
"promoted_content":null,
"events":null,
"query":"Lee Soonkyu",
"name":"Lee Soonkyu"
},
{
"promoted_content":null,
"events":null,
"query":"MC1123",
"name":"MC1123"
},
{
"promoted_content":null,
"events":null,
"query":"Dominique Strauss-Kahn",
"name":"Dominique Strauss-Kahn"
},
{
"promoted_content":null,
"events":null,
"query":"WeLoveNickJonas",
"name":"WeLoveNickJonas"
},
{
"promoted_content":null,
"events":null,
"query":"Ripper Stefan",
"name":"Ripper Stefan"
},
{
"promoted_content":null,
"events":null,
"query":"Luc\u00eda P\u00e9rez",
"name":"Luc\u00eda P\u00e9rez"
},
{
"promoted_content":null,
"events":null,
"query":"DB5K",
"name":"DB5K"
},
{
"promoted_content":null,
"events":null,
"query":"WeSupportYouGomez",
"name":"WeSupportYouGomez"
},
{
"promoted_content":null,
"events":null,
"query":"LSnoAltasHoras",
"name":"LSnoAltasHoras"
},
{
"promoted_content":null,
"events":null,
"query":"Azerbaijan",
"name":"Azerbaijan"
},
{
"promoted_content":null,
"events":null,
"query":"Eurovision",
"name":"Eurovision"
},
{
"promoted_content":null,
"events":null,
"query":"Derek Boogaard",
"name":"Derek Boogaard"
},
{
"promoted_content":null,
"events":null,
"query":"Terry Wogan",
"name":"Terry Wogan"
},
{
"promoted_content":null,
"events":null,
"query":"FMI",
"name":"FMI"
},
{
"promoted_content":null,
"events":null,
"query":"WorldLovesSwift",
"name":"WorldLovesSwift"
},
{
"promoted_content":null,
"events":null,
"query":"WorldWarIV",
"name":"WorldWarIV"
},
{
"promoted_content":null,
"events":null,
"query":"Jedward",
"name":"Jedward"
},
{
"promoted_content":null,
"events":null,
"query":"GAGA10MILLION",
"name":"GAGA10MILLION"
},
{
"promoted_content":null,
"events":null,
"query":"Stefan Raab",
"name":"Stefan Raab"
},
{
"promoted_content":null,
"events":null,
"query":"Manchester United Campe\u00f3n",
"name":"Manchester United Campe\u00f3n"
},
{
"promoted_content":null,
"events":null,
"query":"Derek Mooney",
"name":"Derek Mooney"
},
{
"promoted_content":null,
"events":null,
"query":"Chord Overstreet",
"name":"Chord Overstreet"
},
{
"promoted_content":null,
"events":null,
"query":"IMF",
"name":"IMF"
},
{
"promoted_content":null,
"events":null,
"query":"Joe Buck",
"name":"Joe Buck"
},
{
"promoted_content":null,
"events":null,
"query":"\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d",
"name":"\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d"
},
{
"promoted_content":null,
"events":null,
"query":"Wango Tango",
"name":"Wango Tango"
},
{
"promoted_content":null,
"events":null,
"query":"AlwaysRihannaNavy",
"name":"AlwaysRihannaNavy"
}
],
答案 0 :(得分:1)
我不太确定,如果我理解你的问题,但我想你想要一个日期键列表。
使用json.simple进行解析会产生一个JSONObject,这是一个地图,所以它的keySet()
方法会为你提供所需的东西:
JSONObject<String, Object> obj = (JSONObject<String, Object>)JSONValue.parse(s);
for (String key in obj.keySet()) {
// do something with key
}
答案 1 :(得分:0)
其实我不太明白你的意思是什么...... 但是,我认为我有一个解决方案[使用GSON(来自Google的lib)] 看完你的数据后,我想我们可以创建一个类。像这样
public class Foo{
private Date date/* or ID ?*/;
private List<Content> contents; //a class defined blow
/* constructors and methods */
}
public class Content{
private String promoted_content;// Or a class? I'm not sure, because I found all of them is null
private String events;// same as promoted_content
private String query;
private String name;
/* constructors and methods */
}
现在,使用gson解析您的数据。像这样
Gson gson = new Gson();//maybe you wanna read docs of gson for more detail
Foo foo = gson.fromjson(/*your data*/, Foo.class);
在这里,您知道有一个名为Foo的对象,您可以获取其值。我注意到你说也许有一个以上的“日期”,所以我们可以创建一个包含List的新类。