无法将HashSet解析为JSONObject String

Ash*_*lam 5 java json

我试图转换HashSet<String>JSONObject然后解析输出JSON.

这是我尝试过的:

JSONObject json = new JSONObject();
json.put("set", new HashSet<>(Arrays.asList("a", "b")));
json.put("list", Arrays.asList("a", "b"));
String jsonString = json.toJSONString();

System.out.println(jsonString);

JSONParser parser = new JSONParser();
JSONObject afterParse = (JSONObject) parser.parse(jsonString);
System.out.println(afterParse.toJSONString());
Run Code Online (Sandbox Code Playgroud)

但它给了我这个输出和错误:

{"set":[b, a],"list":["a","b"]}
Exception in thread "main" Unexpected character (b) at position 8.
Run Code Online (Sandbox Code Playgroud)

在这里,你可以看到a和b都是字符串,在列表中都是双引号内但在集合中它不是.

我正在使用org.json.simplev1.1.

Sac*_*141 4

我认为这是图书馆的问题org.json.simple

我已经使用了org.json库,并且必须对上面的代码进行一些小的更改才能工作:

JSONObject json = new JSONObject();
json.put("set", new HashSet<>(Arrays.asList("a", "b")));
json.put("list", Arrays.asList("a", "b"));
String jsonString = json.toString();

System.out.println(jsonString);

JSONObject afterParse = new JSONObject(jsonString);
System.out.println(afterParse.toString());
Run Code Online (Sandbox Code Playgroud)

这段代码的输出是:

{"set":["a","b"],"list":["a","b"]}
Run Code Online (Sandbox Code Playgroud)