我来分析一下:
目标,这是把一个json转换成一个List<Persion>。
如果描述方式是作者描述的那样可以由以下几步来处理:
1,解析整个json成key,value的形式。
2,再根据key的字串的数值来设置List的实现类。
你先写一下,我等一下再粘代码。
我 明白这个意思,可是我不知道应该拆分合并。
@代码小六: 我随便写了一代java的实现。应该还有好的方法。是用gson实现的。
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> </dependency>
以上是我引用gson的包。
public class App { public static void main( String[] args ) { String str="{\"family[0].FamilyName\": \"第一个\",\"family[0].Sex\": \"1\",\"family[1].FamilyName\": \"第二个\",\"family[1].Sex\": \"1\"}"; JsonParser parse =new JsonParser(); //创建json解析器 JsonObject json=(JsonObject)parse.parse(str); //创建jsonObject对象 Iterator<String> it = json.keySet().iterator(); List<JsonObject> lst = new ArrayList<JsonObject>(); JsonObject jo= new JsonObject(); while(it.hasNext()){ String key = it.next(); String value = json.get(key).getAsString(); if(key.contains("FamilyName")){ jo.addProperty("FamilyName", value); }else{ jo.addProperty("sex", value); lst.add(jo); jo = new JsonObject(); } } System.out.println(lst.toString());
以上是代码。
得到以下运行结果:
[{"FamilyName":"第一个","sex":"1"}, {"FamilyName":"第二个","sex":"1"}]
var _arry = new Array(); var n = {}; n.FamilyName = "第一个"; n.Sex = 1; _arry.push(n); n = {}; n.FamilyName = "第二个"; n.Sex = 2; _arry.push(n); console.log(_arry); console.log(JSON.stringify(_arry));
//谷歌F12 Console里直接粘贴这段代码运行即可,自己要用的话,得引用一个Jquery的版本。代码才生效。这才是正确的姿势。也是最舒服的姿势。你的这样的Json{
"family[0].FamilyName": "第一个",
"family[0].Sex": "1",
"family[1].FamilyName": "第二个",
"family[1].Sex": "1",
}只能是一个Object去转换,然后再进行拆分。再转换成Json。
呵呵,正确的姿势与舒服的姿势!!
应该怎样去转换呢,我没有发现可行的规律
@代码小六: 我的建议是你这段Json最好按照有规律的存储,存储好的对象应该是一个Array.array的里面存放的是object 。这样去转换成你想要的Json才是可行的方式。有时候改变一下原始数据的结构,也是一种可行的方式。
{
"family[0].FamilyName": "第一个",
"family[0].Sex": "1",
"family[1].FamilyName": "第二个",
"family[1].Sex": "1",
}
你的这个只能转换成Object的Json,如果想转换成你想要的Json,你得自己想办法去拆分。如果你把这个JSon改成我这样的形式
var _arry = new Array(); var n = {};
n.FamilyName = "第一个";
n.Sex = 1;
_arry.push(n);
n = {};
n.FamilyName = "第二个";
n.Sex = 2;
_arry.push(n);
JSON.stringify(_arry);这个就是你要的Json格式了!
@贫民窟大侠: 是呀 我现在就是要做这一步操作,就是怎么拆分,我想不出来