struts2操作json成字符串格式错误被转义及其前台访问json对象的方法
这个问题确实纠结了我几天,是在是烦。网上也是参考了好几位大师的说法。都是不了了之。
这里记下这个问题,以备以后的参考。
我在struts2后台返回的是这样的json字符串:
"[{\"b\":\"best\",\"a\":\"judd\"}]"
里面是被转义的,这样的转义是没有什么意义的,因为这样转换的其实不是json字符串。他是不符合json字符串的。
标准的json字符串的样式,我这里就不多写了。大家相信也知道的。
所以以上的转义也是无效的,不要纠结。上面的转义成的字符串也是正确的。
关键的是,我们在struts2中如果需要返回一个json的字符串,我想到了1个的操作手法》
1,使用jsonobject.fromobject(obj),这里的obj只能是map类型或者是bean类型的。
所以如果需要返回一个你需要的json 的字符串,需要写一个bean,里面放入你需要返回的字符串对象,可以是list类型的,当然。
或者是自己做一个map即可。
其他的方法现在还没有想到。其他的方法详细产生的也不是标准的json格式的字符串。后面也无法使用的。
jsonarray.fromobject(obj).tostring,这个类主要用于转换的是list类型的。但是转换后的json字符串同样也是不可以使用的,因为不标准吧。
**********************************************
前台访问json对象的方法:
在服务器那边,返回一个JSON格式的字符串,如—— a、"{\"name\":\"dd\",\"age\":\"12\"}"; b、"[{\"name\":\"dd\",\"age\":\"12\"},{\"name\":\"kk\",\"age\":\"20\"}]"; var message = eval('(' + 返回的json格式参数+ ')'); 如果你的JSON格式是如上面a那种,那可以这样获取数据—— message.name、message.age 如果是b那种,可以这样—— message[0].name、message[1].age eval()函数用于解析json数据,你可以百度查一下具体用法。。。。
作者:高级测试开发网
博客地址:https://seniortesting.club
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?