递归火山软件开发平台

标题: JSON取文本值失败 [打印本页]

作者: Yes    时间: 2021-7-15 14:41
标题: JSON取文本值失败
我的数据   {"contact0":{"lastname":"华为","mobile":"4008308300","mobileEmail":"4008308300"},"contact1":{"mobile":"2397","mobileEmail":"2397","lastname":"街道"},"contact2":{"lastname":"安埠","mobile":"0466","mobileEmail":"0466"}}

程序运行到取文本值就退出,不知道什么原因,请指教,谢谢。


作者: 火绒    时间: 2021-7-15 16:05
你应该理解一下数组和对象的区别,多看看基础的教程

作者: Yes    时间: 2021-7-15 16:15
谢谢指教,被你发现了,确实基础差,还需要多学习。
我是看到了图片上这个可以实现,但不明白为什么我写的这个取文本值实现不了,写到文本格式是没有问题的,就是不知道哪里出错了。
作者: 火绒    时间: 2021-7-15 16:28
Yes 发表于 2021-7-15 16:15
谢谢指教,被你发现了,确实基础差,还需要多学习。
我是看到了图片上这个可以实现,但不明白为什么我写的 ...

源码发一下,没有解析文本不知道哪有出错
作者: 火绒    时间: 2021-7-15 16:40
Yes 发表于 2021-7-15 16:15
谢谢指教,被你发现了,确实基础差,还需要多学习。
我是看到了图片上这个可以实现,但不明白为什么我写的 ...

算了,我把上边的那个示例的数据改成你这个格式,你看看是不是这样

作者: Yes    时间: 2021-7-16 08:40
谢谢您的代码,我上传了完整的代码。
作者: Yes    时间: 2021-7-16 08:54
火绒 发表于 2021-7-15 16:40
算了,我把上边的那个示例的数据改成你这个格式,你看看是不是这样

我写的时候,直接把数据写在局部变量里面这个过程没有问题,但是把原始数据经过整理后写到数组里面再这样处理就出现程序退出的问题。
作者: 火绒    时间: 2021-7-16 09:10
Yes 发表于 2021-7-16 08:54
我写的时候,直接把数据写在局部变量里面这个过程没有问题,但是把原始数据经过整理后写到数组里面再这样 ...

原始数据是不是创建json失败,造成空对象,操作空对象就会造成奔溃,我们给你的代码可以没有空对象监测,但是你最好加上
作者: Yes    时间: 2021-7-16 09:20
{"contact0":{"lastname":"华为","mobile":"4008308300","mobileEmail":"4008308300"},"contact1":{"mobile":"2397","mobileEmail":"2397","lastname":"街道"},"contact2":{"lastname":"安埠","mobile":"0466","mobileEmail":"0466"}}

原始数据是这种,我用代码取出到数组里面,写出来是这种

{"lastname":"华为","mobile":"4008308300","mobileEmail":"4008308300"},{"mobile":"2397","mobileEmail":"2397","lastname":"街道"},{"lastname":"安埠","mobile":"0466","mobileEmail":"0466"}

接着用JSON数组类.创建子文本数据,  到文本 (JSON数组类.创建自数组 ()) 也没问题,成功写出来了,就是对象.取文本值()过不去,程序直接闪退。
作者: 火绒    时间: 2021-7-16 10:01
Yes 发表于 2021-7-16 09:20
{"contact0":{"lastname":"华为","mobile":"4008308300","mobileEmail":"4008308300"},"contact1":{"mobil ...

我看了一下你的源码,问题出在对json数组和json对象的概念不清,也就是对什么是数组什么是对象分不清,你可以这么理解当你取出的内容是{“”:“”}这种的时候就是对象,当你取出的内容是[]这个标志的时候json数组,那好回到你的例子中:
{"contact0":{"lastname":"华为","mobile":"4008308300","mobileEmail":"4008308300"},"contact1":{"mobile":"2397","mobileEmail":"2397","lastname":"街道"},"contact2":{"lastname":"安埠","mobile":"0466","mobileEmail":"0466"}},上边这一串很明显最外层是{},所以你应该想到用json对象类去处理,再看一下下边的-------[{"lastname":"华为客服","mobile":"4008308300","mobileEmail":"4008308300"},{"mobile":"2397","mobileEmail":"2397","lastname":"街道"},{"lastname":"安埠","mobile":"0466","mobileEmail":"0466"}],最外层是一个[] ,说明他是一个数组,我们就先用json数组类创建一下
作者: Yes    时间: 2021-7-16 10:21
谢谢您的指点。
作者: 火绒    时间: 2021-7-16 10:28
这个是修改后的,你可以参考一下

作者: 创世魂    时间: 2021-7-16 10:42
http://doc.voldp.com/JSON/json_duixiang.htm

json对象类教程

http://doc.voldp.com/JSON/json_shuzu.htm
json数组类教程
作者: Yes    时间: 2021-7-16 15:27
感谢 火绒 前辈,能得到这么耐心详细的指导,真的是我的荣幸。




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4