jQuery MiniUI

标题: form的setData方法中的json字符串格式问题 [打印本页]

作者: xiaohuashenshou    时间: 2014-4-8 14:59:46     标题: form的setData方法中的json字符串格式问题

修改界面在对form进行赋值时,我如果用gson转换的就可以正常显示,因为gson转换的时候如果结果集只有一个对象时,两端是不会加上[]的,但是json包转换时还是会加上[],这时就不能正常显示了。
数据对比:[{"actionUrl":"","guid":"79df43da-d662-450c-b48f-6f6479f27b96","modleId":"root","modleName":"全部","parentModleId":""}]
{"actionUrl":"","guid":"79df43da-d662-450c-b48f-6f6479f27b96","modleId":"root","modleName":"全部","parentModleId":""}

大神能给解释一下是这么回事吗

作者: factory    时间: 2014-4-8 15:28:17

带[],说明你的数据原来是一个数组,{}是一个对象

json的序列化和反序列化不会乱转你的数据格式的, 不会说对象转成数组,数组转成对象. 只会你原来是什么数据格式,最后得到也是什么格式的.

你检查下你的代码,是不是你的数据上格式被改了,或者比如在前台,o是一个对象, 但是你mini.encode([o]),这样给外面套了一个[],那么就最终成了数组了,带[]
作者: xiaohuashenshou    时间: 2014-4-8 15:48:40

factory 发表于 2014-4-8 15:28
带[],说明你的数据原来是一个数组,{}是一个对象

json的序列化和反序列化不会乱转你的数据格式的, 不会说对 ...

[{"actionUrl":"","guid":"79df43da-d662-450c-b48f-6f6479f27b96","modleId":"root","modleName":"全部","parentModleId":""}]
{"actionUrl":"","guid":"79df43da-d662-450c-b48f-6f6479f27b96","modleId":"root","modleName":"全部","parentModleId":""}
这两种形式是我分别用json的jar包转换和gson的jar包转换一个单独对象的结果,也就是说gson转换的时候对于一个对象不会转化成数组,但是数据格式都没有问题啊,我想问的是  是不是在form进行setData的时候只可以进行单个对象数据的显示,或者源码中没有对数组进行遍历的操作,直接i强制性的定义成一个对象了
作者: factory    时间: 2014-4-8 16:07:37

xiaohuashenshou 发表于 2014-4-8 15:48
[{"actionUrl":"","guid":"79df43da-d662-450c-b48f-6f6479f27b96","modleId":"root","modleName":"全部" ...

form的setData()接收的是一个对象

不是一个数组

如果带了[]

你在setData()的时候  form.setData(data[0]),获取下里面的对象就行了
作者: xiaohuashenshou    时间: 2014-4-8 16:11:00

factory 发表于 2014-4-8 16:07
form的setData()接收的是一个对象

不是一个数组

哦,知道了,3q




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2