如何为键值可变的JSON字符串创建java类?
array (
0 =>
array (
'time_start' => 1252652400,
'time_stop' => 1252911600,
'stats' =>
array (
6002306163363 =>
array (
'id' => 6002306163363,
'impressions' => '6713',
'clicks' => '7',
'spent' => '593',
'actions' => '1',
),
),
),
)
数据示于其余/ ads.getAdGroupStats的Facebook的API。
我无法将统计信息部分转换为Java类,其中6002306163363是一个变量,同样可以有更多的映射。以下是三个广告123456,23456,34567的完整结果。
[
{
"time_start": 0,
"time_stop": 1285224928,
"stats": {
"123456": {
"id": 123456,
"impressions": 40,
"clicks": 0,
"spent": 0,
"social_impressions": 0,
"social_clicks": 0,
"social_spent": 0
},
"23456": {
"id": 23456,
"impressions": 3,
"clicks": 0,
"spent": 0,
"social_impressions": 0,
"social_clicks": 0,
"social_spent": 0
},
"34567": {
"id": 34567,
"impressions": 211457,
"clicks": 84,
"spent": 6898,
"social_impressions": 124,
"social_clicks": 0,
"social_spent": 0
}
}
}
]
我必须制作一个Java类,它可以映射到上面的JSON并且不能这样做。任何人都可以在这里帮我吗?
更新:我从facebook获取这些数据,并在我们正在使用的api中需要类,以便返回的json可以被映射。我只控制创建一个类,以便API内部映射出来。我需要所需的java类的格式。
你需要一个hashmap或类似的东西来处理这些数字键。
public class GroupStats {
long time_start;
long time_stop;
HashMap<GroupAccount> stats;
}
public class GroupAccount {
long id;
int impressions;
int clicks;
int spent;
int social_impressions;
int social_spent;
}
所以内部API会自动将这个Object(GroupAccount)映射到字符串“123456”? – DKSRathore 2010-09-23 09:00:07
此外,我已经尝试过,但没有工作。 – DKSRathore 2010-09-23 09:00:59
当然你需要一个json解析器和一些工作来获取JSON数据到上面描述的类中,这个工作本身不会自动完成。 – 2010-09-23 09:09:30
看看这里http://www.json.org/java/ – 2010-09-23 08:54:49