Java—如何迭代这个映射方法,使我的方法返回一个字符串
我有这样一种方法:Java—如何迭代这个映射方法,使我的方法返回一个字符串,java,algorithm,Java,Algorithm,我有这样一种方法: public static String m(String key1, String value1, String key2, String value2) { return "{ " + " \"SomeAttribute\": " + "{" + "\"" + key1 + "\": \"" + value1 + "," + "\"" + key2 + "\": \
public static String m(String key1, String value1, String key2, String value2) {
return "{ "
+ " \"SomeAttribute\": "
+ "{"
+ "\"" + key1 + "\": \"" + value1 + ","
+ "\"" + key2 + "\": \"" + value2
+ "\"}"
+ "}";
}
我想更改它,以便它接受一个映射作为参数,而不是字符串。我尝试了这种方法,但我对synaxt感到困惑,因为有太多的+和“”:
有人能告诉我如何修复此代码吗?循环不会以这种方式返回您想要的字符串,您需要创建字符串,并在每个循环中连接一个新字符串:
public static String m(Map<String, String> mp)
{
Iterator<?> it = mp.entrySet().iterator();
String str = "{"
+ " \"SomeAttribute\": "
+ "{";
while (it.hasNext())
{
Map.Entry pair = (Map.Entry) it.next();
str += "\"" + pair.getKey() + "\": \"" + pair.getValue() + "\",";
}
str += "}"
+ "}";
return str;
}
列表
用法似乎比地图
更适合您的情况。添加一个示例!输出是什么?你期待什么?问题是什么?通过字符串连接创建JSON数据是个坏主意。使用合适的JSON库。不要手动生成JSON。使用JSON解析器/封送器。他们有很多。它们都会生成有效的JSON,而您的代码在某些情况下不会生成。谢谢@boobalangnanasekaran,您能告诉我如何使用列表吗?
public static String m(Map<String, String> mp)
{
Iterator<?> it = mp.entrySet().iterator();
String str = "{"
+ " \"SomeAttribute\": "
+ "{";
while (it.hasNext())
{
Map.Entry pair = (Map.Entry) it.next();
str += "\"" + pair.getKey() + "\": \"" + pair.getValue() + "\",";
}
str += "}"
+ "}";
return str;
}
public static String m(Map<String, String> mp)
{
String str = "{"
+ " \"SomeAttribute\": "
+ "{";
for (Map.Entry<String, String> pair : mp.entrySet())
{
str += "\"" + pair.getKey() + "\": \"" + pair.getValue() + "\",";
}
str += "}"
+ "}";
return str;
}