JSONObject与java字符串拼接json的区别
背景事情的起因是这样的。最近正在调试Socket.io的Android端接口。自己找到的Socket.io的Android的官方资料只是简单的字符串传递,而后台的接口则是一次性传递多组键值对参数,考虑到js的字典可以用类似json键值对来初始化,我就把参数直接拼接成了字符串进行测试。拼接方式如下 String str = "{"key":"+value+"}";
也就是使用最普通的java拼接字符串的方式,其中对字符串中的引号做了转义处理。这也发送到js服务端,打印信息可以打印出{“key”:”value}这样的字符串,但是js服务端并不能通过字典方式由键获取到值,而是直接当作字符串处理。 尝试多种方式之后,发现直接使用JSONObject,用put方法添加键值对,这样服务端就可以正确将参数解释为字典类型,同时我们在服务端打印数据时可以发现js将这些数据解析为Object类型,而不是我们之前所见字符串。 这说明JSONObject生成的json与我们直接拼写的是有区别的,这样在Socket.io的Android的sdk中对这个参数的处理方式肯定也不相同,眼见为实,现在我们打印一下处理完毕后即将发送的参数,看看两者有什么区别。 结论在进行数据传输使用json时,我们尽可能使用JSONObject进行json生成,手动生成可能会引入其他转移字符活着多余的引号而导致其他一些问题。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |