public static void main(String[] args) {
String s = "{\"name\":\"sad\",\"age\":\"10\"}";
JSONObject parseObject = JSON.parseObject(s);
Set<String> keySet = parseObject.keySet();
keySet.remove("name");
keySet.add("name");
}
报错
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractCollection.add(AbstractCollection.java:262)
at com.ch.tt.controller.ShiroTest.main(ShiroTest.java:16)
抽象 AbstractCollection
java.util.AbstractCollection.add(AbstractCollection.java:262)
查看源码。。。
如果是这样的话就不会出现上面的问题:
public static void main(String[] args) {
Set<String> s = new HashSet<String>();
s.add("sad");
}
思考一个问题 为什么两个不一样,。。。这样用有什么好处吗?好处就是不能通过改变keyset来影响原来的json对象。。很合理。。
其实我想排序,或者把一个前面的值放在最后,最后只能是 转list然后再排序了。。。
public static void main(String[] args) {
String s = "{\"name\":\"sad\",\"age\":\"10\"}";
JSONObject parseObject = JSON.parseObject(s);
Set<String> keySet = parseObject.keySet();
List<String> l = new ArrayList<String>(keySet);
Collections.sort(l);
System.out.println(l.toString());
}