用json-lib解析json时,出现乱序问题

tbxgoo123 2009-11-25 06:08:32
String json = "[{\"biActid\":\"aaaaaaaa\",\"biPassword\":\"ddddddd\",\"biEmail\":\"eeeeee\",\"biDeptid\":\"运营管理部\",\"biActLevel\":\"系统管理员\",\"biIsactive\":\"是\"}]";
System.out.println(json);

然后用
JSONArray jsonArr =JSONArray.fromObject(json);

System.out.println(jsonArr);

两次的输出明显顺序发生了变化

请问如何保持原json的顺序
...全文
469 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
healer_kx 2009-11-26
  • 打赏
  • 举报
回复
用gson~
shine333 2009-11-26
  • 打赏
  • 举报
回复
在加一个固定的属性,用来表示这个对象的主键的名称
比如
String json = "[{\"pk\":\"biActid\",\"biActid\":\"aaaaaaaa\",\"biPassword\":\"ddddddd\",\"biEmail\":\"eeeeee\",\"biDeptid\":\"运营管理部\",\"biActLevel\":\"系统管理员\",\"biIsactive\":\"是\"}]";
tbxgoo123 2009-11-26
  • 打赏
  • 举报
回复
有个顺序就可以确定主键了
hejuan250229087 2009-11-26
  • 打赏
  • 举报
回复
没明白你到底想干嘛,已经有了键值对,为什么还一定要它的顺序
tbxgoo123 2009-11-26
  • 打赏
  • 举报
回复
当然有关系了,顺序是乱的,不能确定哪个是主键啊。拼出来的sql语句就不准确了
tbxgoo123 2009-11-26
  • 打赏
  • 举报
回复
是个办法[Quote=引用 11 楼 tbxgoo123 的回复:]
有个顺序就可以确定主键了
[/Quote]
wangju309 2009-11-26
  • 打赏
  • 举报
回复
为什么做成一个row呢?既然用了JSONArray可以将每个key value做成一个JSONObject,然后再put一个index就可以了
如:[{\"biActid\":\"aaaaaaaa\",\"index\":1},
{\"biPassword\":\"ddddddd\",\"index\":2}]
J2EE_DOTNET_SU 2009-11-26
  • 打赏
  • 举报
回复
模糊了……
shine333 2009-11-25
  • 打赏
  • 举报
回复
这个有什么问题吗,你应当关心的 名值对 对不对,又不是数组,顺序根本没关系
tbxgoo123 2009-11-25
  • 打赏
  • 举报
回复
我其实想做的是把json第一个key value做为主键,然后其它后面的做为set的字段
就是想拼上一个sql的更新语句 比如 update table set key2=value2,key3=value3 where key1=value1 这样.但是解析的顺序发生混乱让我很难实现.还请大家看看有什么好办法
tbxgoo123 2009-11-25
  • 打赏
  • 举报
回复
有什么好的思路吗
hbwhwang 2009-11-25
  • 打赏
  • 举报
回复
我们现在就把JSON-LIB废了,自己写了一个
hbwhwang 2009-11-25
  • 打赏
  • 举报
回复
你得自己改造一下程序了
zl3450341 2009-11-25
  • 打赏
  • 举报
回复
public static void main(String[] args) {
String json = "{stu : {stuName : \"yinkaihua\", stuNo : \"0120510340202\"}}";
JSONObject jsObj = JSONObject.fromObject(json);
Student stu = (Student)JSONObject.toBean(jsObj.getJSONObject("stu"), Student.class);
System.out.println(stu.getStuName() + " " + stu.getStuNo());
}

你像这样写个 输出
feitianya 2009-11-25
  • 打赏
  • 举报
回复
它输出的是key,value,这个应该没有问题吧。
直接通过key找value不行?
tbxgoo123 2009-11-25
  • 打赏
  • 举报
回复
两次输出的结果
原数据:[{"biActid":"aaaaaaaa","biPassword":"ddddddd","biEmail":"eeeeee","biDeptid":"运营管理部","biActLevel":"系统管理员","biIsactive":"是"}]
转化后:[{"biEmail":"eeeeee","biPassword":"ddddddd","biIsactive":"是","biDeptid":"运营管理部","biActid":"aaaaaaaa","biActLevel":"系统管理员"}]

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧