我正在开发一个Android应用程序,我必须通过API发送LinkedHashMap
结果,但问题是我得到的结果格式是不同的。如何将键和值都放在引号中?
我得到的结果如下:
list: {0=816444014066, 1=747083010945, 2=816444010969}
我想要这样的结果:
list: {"0" : "816444014066","1" : "747083010945","2" : "816444010969"}
如何更改结果的格式?
答案 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
方法行为的方法在其中创建和实现该方法。此链接可能有助于您开始实施该方法: