复杂的字符串数组解析:{"setting":"简单:10:5,一般:5:10,困难:2:20"},使用split多次截取
2024-08-25 07:45:25
"[0,{"id":563,"name":"测试题1","dscr":null,"picId":null,"setting":"简单:10:5,一般:5:10,困难:2:20"}" //像上面这种比较复杂的字符串数组怎么解析?
{"setting":"简单:10:5,一般:5:10,困难:2:20"} //像这样的对象怎么解析?
写这样接口的人也真是无语了。
分析:
"[0,{"id":563,"name":"测试题1","dscr":null,"picId":null,"setting":"简单:10:5,一般:5:10,困难:2:20"}" 明显的字符串数组,我们在使用它时,必须使用JSON.parse(data)将字符串转为数组
JSON.pares(data)//字符串数组转数组
转换成功后的数组为:
[
0:0,
1:{
dscr:null,
id:236,
name:"测试题1",
picId:null,
setting:"简单:10:5,一般:5:10,困难:2:20"
}
]
这篇文章重点说明转换后的数组中属性为 setting 的值的获取方法,因为根据这道笔试题,是要分别取出这些值:
说明:
它表示:
type="简单"的题有quantity=10道, 每道题score=5分;“一般”的题目有5道,每道题10分;“困难”的题有2道,每道题20分
{"setting":"简单:10:5,一般:5:10,困难:2:20"}
从这个对象看,这个setting属性有个比较复杂的值,这个值由三个type组成,它们之间都由 ,逗号相连,如果分别取值的话,可以分三步走:
1、先取出每一个type,并组成一个数组,因为三个type间是由 , 逗号隔开,因此要使用 split(',')分离;
//根据逗号分离
var arr = setting.split(',');
//分离后的数据为:
[
0:"简单:10:5",
1:"一般:5:10",
2:"困难:2:20"
]
2、再取出arr数组中每一个对象的value,分析,每个vlaue由三个字符组成,分别由 : 冒号相连,如果要取值的话,仍需使用 split(':')分离
if(str.length > 0){
for(var j = 0; j < str.length; j++){
//将这个字符串 "简单:10:5" 分别截取
var strItem = str[j];
//将这个字符串 "简单:10:5" 分别截取
var strSplit = strItem.split(':');
}
}
//分离后的数据
Array[3]
0:"简单",
1:"10",
2:"5"
3、分别取出:
var strType,strQuantity,strScore; for(var z = 0; z < strSplit.length; z++){
strType = strSplit[0];
strQuantity = strSplit[1];
strScore = strSplit[2];}
}
//取出后的数据
strType
"简单"
strQuantity
"10"
strScore
"5"
这时就可以做任何事情了,不过这个后端的接口也真是郁闷的紧!
最新文章
- 关于JSP---三大指令
- html-css实例
- poj1420 拓扑序
- iOS 开发经验谈,点击没响应事件
- YII 数据库相关操作
- Linux互斥和同步应用程序(一):posix线程和线程之间的相互排斥
- CodeForces 625B War of the Corporations
- hdu 3555 Bomb(不要49,数位DP)
- Git学习笔记--命令
- Android查看appPackage和Activity的多种方法
- 下载配置nodeJs,cnpm,webpack,vue-cli等,刚装的系统,所有东西重新配置
- 自动化测试-11.selenium的下拉框处理类Select
- Netty通信原理
- [Golang] 从零開始写Socket Server(4):将执行參数放入配置文件(XML/YAML)
- Taking water into exams could boost grades 考试带瓶水可以提高成绩?
- mybatis入门--#{}和${}的区别
- mybatis之一对一关联
- (二)swagger-springmvc
- Hadoop HA- hadoop集群部署
- jzoj6001. 【PKUWC2019模拟2019.1.15】Mines (tarjan)
热门文章
- 用canvas画一个等腰三角形
- Chapter 4 Invitations——5
- 五分钟轻松了解Hbase面向列的存储
- 开始翻译Disruptor
- .NET 中的序列化 &; 反序列化
- [PDOException] PDO::__construct(): php_network_getaddresses: getaddrinfo failed:
- VirtualBox VM&#21551;&#29992;3D&#21152;&#36895;
- Docker 系列七(Dubbo 微服务部署实践).
- redux 入门
- 使用EF保存数据时 提示: 其他信息: 对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。