递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 8311|回复: 13
打印 上一主题 下一主题

[安卓] JSON取文本值失败

[复制链接]

9

主题

86

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
跳转到指定楼层
楼主
发表于 2021-7-15 14:41:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的数据   {"contact0":{"lastname":"华为","mobile":"4008308300","mobileEmail":"4008308300"},"contact1":{"mobile":"2397","mobileEmail":"2397","lastname":"街道"},"contact2":{"lastname":"安埠","mobile":"0466","mobileEmail":"0466"}}

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

QQ图片20210715143515.png (31.76 KB, 下载次数: 89)

QQ图片20210715143515.png

main.v

28.12 KB, 下载次数: 2

回复

使用道具 举报

51

主题

540

帖子

4245

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4245
沙发
发表于 2021-7-15 16:05:24 | 只看该作者
你应该理解一下数组和对象的区别,多看看基础的教程

1626336261(1).jpg (70.93 KB, 下载次数: 85)

1626336261(1).jpg

评分

参与人数 1金钱 +15 收起 理由
Yes + 15 赞一个!

查看全部评分

回复

使用道具 举报

9

主题

86

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
板凳
 楼主| 发表于 2021-7-15 16:15:42 | 只看该作者
谢谢指教,被你发现了,确实基础差,还需要多学习。
我是看到了图片上这个可以实现,但不明白为什么我写的这个取文本值实现不了,写到文本格式是没有问题的,就是不知道哪里出错了。

QQ图片20210715161004.png (28.62 KB, 下载次数: 78)

QQ图片20210715161004.png
回复

使用道具 举报

51

主题

540

帖子

4245

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4245
地板
发表于 2021-7-15 16:28:26 | 只看该作者
Yes 发表于 2021-7-15 16:15
谢谢指教,被你发现了,确实基础差,还需要多学习。
我是看到了图片上这个可以实现,但不明白为什么我写的 ...

源码发一下,没有解析文本不知道哪有出错
回复

使用道具 举报

51

主题

540

帖子

4245

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4245
5#
发表于 2021-7-15 16:40:50 | 只看该作者
Yes 发表于 2021-7-15 16:15
谢谢指教,被你发现了,确实基础差,还需要多学习。
我是看到了图片上这个可以实现,但不明白为什么我写的 ...

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

1626338420(1).jpg (51.39 KB, 下载次数: 85)

1626338420(1).jpg

评分

参与人数 1金钱 +5 收起 理由
Yes + 5 很给力!

查看全部评分

回复

使用道具 举报

9

主题

86

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
6#
 楼主| 发表于 2021-7-16 08:40:00 | 只看该作者
谢谢您的代码,我上传了完整的代码。

新建文件夹.zip

599.33 KB, 下载次数: 1

回复

使用道具 举报

9

主题

86

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
7#
 楼主| 发表于 2021-7-16 08:54:14 | 只看该作者
火绒 发表于 2021-7-15 16:40
算了,我把上边的那个示例的数据改成你这个格式,你看看是不是这样

我写的时候,直接把数据写在局部变量里面这个过程没有问题,但是把原始数据经过整理后写到数组里面再这样处理就出现程序退出的问题。
回复

使用道具 举报

51

主题

540

帖子

4245

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4245
8#
发表于 2021-7-16 09:10:51 | 只看该作者
Yes 发表于 2021-7-16 08:54
我写的时候,直接把数据写在局部变量里面这个过程没有问题,但是把原始数据经过整理后写到数组里面再这样 ...

原始数据是不是创建json失败,造成空对象,操作空对象就会造成奔溃,我们给你的代码可以没有空对象监测,但是你最好加上
回复

使用道具 举报

9

主题

86

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
9#
 楼主| 发表于 2021-7-16 09:20:32 | 只看该作者
{"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数组类.创建自数组 ()) 也没问题,成功写出来了,就是对象.取文本值()过不去,程序直接闪退。
回复

使用道具 举报

51

主题

540

帖子

4245

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4245
10#
发表于 2021-7-16 10:01:45 | 只看该作者
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数组类创建一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-25 18:55 , Processed in 0.095017 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表