如何为键是可变的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', ), ), ), ) 

数据显示在rest / ads.getAdGroupStats的facebook api中。

我无法将stats部分转换为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 stats; } public class GroupAccount { long id; int impressions; int clicks; int spent; int social_impressions; int social_spent; } 

我是Mark Allen(RestFB维护者)。 版本1.6应该使用新选项来解决这个问题,以映射到内置的JsonObject类型 – 请查看http://restfb.com以获取示例。