如何通过Retrofit解析带有未知键的json?

MrK*_*rno 5 parsing android json retrofit

我想通过Retrofit解析这个JSON(我不知道字段名称{xxx,yyy,zzz})我尝试了一些地图,但我做错了一些事情。请帮我解析这个该死的 json

    {
        xxx: [
        {
        name: "name1",
        description: "desc1"
        }
        ],
        yyy: [
        {
        name: "name2",
        description: "desc2"
        }
        ],
        zzz: [
        {
        name: "name3",
        description: "desc3"
        },
{
        name: "name4",
        description: "desc4"
        }
        ]
        }
Run Code Online (Sandbox Code Playgroud)

- -解决方案 - -

我尝试创建班级响应,但方式错误

public class DishesCategoryResponse {
    public Map<String, List<Dish>> settingsMap;
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试了这个并且它有效

@GET("/api/restaurant_menu/{id}")
    Observable<Map<String, List<Dish>>> getDishesCategory(@Path("id") long id);
Run Code Online (Sandbox Code Playgroud)

Ant*_*nko 2

有一天,我遇到了类似的任务。不确定我的解决方案是否完美,但它可能对您有所帮助。

我有这个 json 文件:

Json截图

final JSONObject bodyObject = new JSONObject(body);
final JSONObject activities = bodyObject.getJSONObject("activities");
final Iterator<String> keys = activities.keys(); // you can iterate through all keys

final List<ContactActivity> contactActivityInfoList = new ArrayList<ContactActivity>();

while (keys.hasNext()) {
    final String key = keys.next();

    final String jsonString = activities.getJSONObject(key).toString();
    final ContactActivity contactActivity =
                mGson.fromJson(jsonString, ContactActivity.class);

    contactActivityInfoList.add(contactActivity);
}
Run Code Online (Sandbox Code Playgroud)