"[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"

这时就可以做任何事情了,不过这个后端的接口也真是郁闷的紧!

最新文章

  1. 关于JSP---三大指令
  2. html-css实例
  3. poj1420 拓扑序
  4. iOS 开发经验谈,点击没响应事件
  5. YII 数据库相关操作
  6. Linux互斥和同步应用程序(一):posix线程和线程之间的相互排斥
  7. CodeForces 625B War of the Corporations
  8. hdu 3555 Bomb(不要49,数位DP)
  9. Git学习笔记--命令
  10. Android查看appPackage和Activity的多种方法
  11. 下载配置nodeJs,cnpm,webpack,vue-cli等,刚装的系统,所有东西重新配置
  12. 自动化测试-11.selenium的下拉框处理类Select
  13. Netty通信原理
  14. [Golang] 从零開始写Socket Server(4):将执行參数放入配置文件(XML/YAML)
  15. Taking water into exams could boost grades 考试带瓶水可以提高成绩?
  16. mybatis入门--#{}和${}的区别
  17. mybatis之一对一关联
  18. (二)swagger-springmvc
  19. Hadoop HA- hadoop集群部署
  20. jzoj6001. 【PKUWC2019模拟2019.1.15】Mines (tarjan)

热门文章

  1. 用canvas画一个等腰三角形
  2. Chapter 4 Invitations——5
  3. 五分钟轻松了解Hbase面向列的存储
  4. 开始翻译Disruptor
  5. .NET 中的序列化 &amp; 反序列化
  6. [PDOException] PDO::__construct(): php_network_getaddresses: getaddrinfo failed:
  7. VirtualBox VM&#21551;&#29992;3D&#21152;&#36895;
  8. Docker 系列七(Dubbo 微服务部署实践).
  9. redux 入门
  10. 使用EF保存数据时 提示: 其他信息: 对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。