如何在倒置逗号中获取LinkedHashMap的结果

时间:2017-11-29 07:59:04

标签: java android

我正在开发一个Android应用程序,我必须通过API发送LinkedHashMap结果,但问题是我得到的结果格式是不同的。如何将键和值都放在引号中?

我得到的结果如下:

list: {0=816444014066, 1=747083010945, 2=816444010969}

我想要这样的结果:

list: {"0" : "816444014066","1" : "747083010945","2" : "816444010969"}

如何更改结果的格式?

3 个答案:

答案 0 :(得分:4)

使用我的答案。它对我有用。

LinkedHashMap<String, String> data = new LinkedHashMap<String, String>();
// Instantiate a new Gson instance.
        Gson gson = new Gson();

        // Convert the ordered map into an ordered string.
        String json = gson.toJson(data, LinkedHashMap.class);

        // Print ordered string.
        Log.e("list", ""+json); //  {"0" : "816444014066","1" : "747083010945","2" : "816444010969"}

答案 1 :(得分:1)

在Java中,您可以将引号添加到String:

String value = " \"1\" ";

你可以这样做:

Map<String, String> linkedmap = new LinkedHashMap<>();
linkedHashMap.put(setQuotes("1"), setQuotes("5445454"));

public static String setQuotes(String value){
     String result = "";
     if(!value.isEmpty()){
          result = "\"" + value + "\"";   
     }
     return result;
}

如果您在控制台中打印它,它将返回:

{"1"="5445454"}

答案 2 :(得分:0)

我认为这种可能性是创建您自己的扩展Map的{​​{1}}类,并使用类似于LinkedHashMap方法行为的方法在其中创建和实现该方法。此链接可能有助于您开始实施该方法:

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/AbstractMap.java#AbstractMap.toString%28%29