[英]Java- Set Interface - Parse JSON String in order
我有Spring MVC应用程序。
我从客户端发送了以下JSON字符串
{
"cfgName": "Name",
"cfgfieldses": [
{
"cfgsName": "form.0",
"cfgValue": "someVal"
},
{
"cfgsName": "form.2",
"cfgValue": "hello"
},
{
"cfgsName": "form.3",
"cfgValue": "fname"
},
{
"cfgsName": "form.1",
"cfgValue": "how?"
}
]
}
我有两个类来解析
配置文件
public class Config implements Serializable {
private String cfgName;
private Set<CfgFields> cfgFieldses = new HashSet<CfgFields>(0);
//getters and setters
}
CfgFields.java
public class CfgFields implements Serializable {
private String cfgsName;
private String cfgValue;
//getters and setters
}
这是我的控制器
public void saveConfig(@RequestBody Config config) {
System.out.println(config.getCfgName());
for (Cfgfields cfgfields: config.getCfgFieldses()) {
System.out.println(cfgfields.getCfgsName());
}
}
cfgfieldses
顺序不对,因为它是Set
。 这就是我得到的输出。
Name
form.1
form.2
form.0
form.3
我想以有序的方式从客户端发送JSON字符串。 我可以尝试使用List而不是Set 。 但是我想知道是否有可能使用Set
并以有序的方式获取。
我的预期输出是
Name
form.0
form.2
form.3
form.1
代替HashSet
,使用LinkedHashSet
。
与HashSet
不同, HashSet
不能保证其项的顺序, LinkedHashSet
允许您按其成员的插入顺序对其成员进行迭代。
编辑
如果要对Set
项目强制执行特定的排序顺序(例如,通过表单名称),请使用SortedSet
,例如TreeSet
。 您将需要为Cfgfields
类提供一个自定义Comparator
器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.