Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 改型:处理动态更改其名称的JSON对象_Android_Json_Object_Retrofit - Fatal编程技术网

Android 改型:处理动态更改其名称的JSON对象

Android 改型:处理动态更改其名称的JSON对象,android,json,object,retrofit,Android,Json,Object,Retrofit,我使用改装 我有如下JSON数据: { "elements": { "159": { "id": 159, "name": "Alex" }, "831": { "id": 831, "name": "Sofia" }, "3125": { "id": 3125, "name": "Mark" } } } 我无法配置此JS

我使用改装

我有如下JSON数据:

{
"elements": {
    "159": {
        "id": 159,
        "name": "Alex"
        },
    "831": {
        "id": 831,
        "name": "Sofia"
        },
    "3125": {
        "id": 3125,
        "name": "Mark"
       }
    }
}
我无法配置此JSON的结构

我想用改型来处理这些对象(动态更改它们的名称)

我现在有那样的东西

型号:

public class Elements{
public ArrayList<ElementsItem> = new Array<ElementsItem>();

//getters setters

public class ElementsItem{
    public ArrayList<ElementsItemDetails> = new Array<ElementsItemDetails>();

    //getters setters
}

public class ElementItemDetails{
    public Integer id;
    public String name;
    //getters setters
}}
是错误的,但是我不知道如何处理name值

对象名称更改时如何操作(在这种情况下,根据提供的ID列表
ids\u list
调用了三个类似的对象?此处:[15683125]


请提供帮助。

由于您的键ElementItemDetails是动态生成的,因此您应该使用映射来表示结构

在模型类元素中

替换

public ArrayList<ElementsItem> = new Array<ElementsItem>();
public ArrayList=new Array();

Map元素细节;

希望这能有所帮助。

您遇到了什么错误?
新回调
vs
回调
--什么是
响应对象获取详细信息
?抱歉@William,这是个错误。这本来是回调,您到底遇到了什么错误?失败…java.lang.indexoutofbounds异常:无效索引0,大小为0!谢谢老兄
public void get_details_for_particular_elements(ArrayList<Integer> ids_list){

    Gson gson_gd = new GsonBuilder().registerTypeAdapter(
            Elements.class,
            new JsonDeserializer<Elements>() {

                @Override
                public Elementsdeserialize(JsonElement je,
                        Type type, JsonDeserializationContext jdc)
                        throws JsonParseException {
                    // TODO Auto-generated method stub
                    Log.d("my_app", "Deserialization for Getting Elements Details in progress..");
                    JsonObject elements= je.getAsJsonObject();
                    return new Gson().fromJson(elements,
                            Elements.class);
                }

            }).create();

    RestAdapter restAdapter = new RestAdapter.Builder()
    .setEndpoint(Constants.URL)
    .setConverter(new GsonConverter(gson_gd)).build();


    MyApi myDetails = restAdapter.create(MyApi.class);

    myDetails.getDetails(ids_list, new Callback<Elements>() {

        @Override
        public void success(Elements e, Response response) {
            // TODO Auto-generated method stub

            Log.d("my_app", "Success! " + e.getElementsItem().get(0).getElementsItemDetails().get(0).getName());

        }

        @Override
        public void failure(RetrofitError retrofitError) {
            // TODO Auto-generated method stub
            Log.d("my_app", "Failure..." + retrofitError);
        }


    });
}
e.getElementsItem().get(0).getElementsItemDetails().get(0).getName()
public ArrayList<ElementsItem> = new Array<ElementsItem>();
Map<String, ElementItemDetails> elemDetails;