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

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

复杂的字符串数组解析:{"setting":"简单:10:5,一般:5:10,困难:2:20"},使用split多次截取的更多相关文章

  1. java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法

    1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...

  2. SQL对字符串数组的处理详解

    原文地址:SQL字符串数组操作文章出处:DIY部落(http://www.diybl.com/course/7_databases/sql/sqlServer/2007106/76999.html) ...

  3. C#"曾经的字符串数组"string[] array=new string[]{"**","****"};

    写博客是一件很伟大的事情,尤其是也牛逼的博客,因为它能帮助需要的人,更能使自己对知识有一个更为深刻的理解! 欢迎关注我的博客! 字符串操作(取当前时间) string time=convert.tos ...

  4. Logstash替换字符串,解析json数据,修改数据类型,获取日志时间

    在某些情况下,有些日志文本文件类json,但它的是单引号,具体格式如下,我们需要根据下列日志数据,获取正确的字段和字段类型 {'usdCnyRate': '6.728', 'futureIndex': ...

  5. C++下面关于字符串数组的一些操作

    今天在写一个搜索引擎的分词系统,是很简单的那种,但是居然费了我一天的时间还没完成,晚上估计还得弄一会了,但是在这个过程中,遇到了集中关于字符串数组的操作,值得和大家分享一下. 首先是关于统计字符串数组 ...

  6. 如何把字符串数组从 Swift 传递给 C

    作者:Natasha The Robot,原文链接,原文日期:2016-10-27译者:BigbigChai:校对:walkingway:定稿:CMB Swift 允许我们将原生的字符串直接传递给一个 ...

  7. JavaScript内置对象(字符串,数组,日期的处理)

    Date 日期对象 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 定义一个时间对象 : var Udate=new Date(); 注意:使用关键字new,Date()的首 ...

  8. struts2:遍历自定义字符串数组,遍历Action实例所引用对象中的数组

    在struts2:OGNL表达式,遍历List.Map集合:投影的使用一文中已经讲述了OGNL遍历List.Map集合等功能. 本文简单写一个遍历数组的示范程序. 1. 遍历自定义字符串数组 < ...

  9. json和字符串/数组/集合的互相转换の神操作总结

    一:前端字符串转JSON的4种方式 1,eval方式解析,恐怕这是最早的解析方式了. function strToJson(str){ var json = eval('(' + str + ')') ...

随机推荐

  1. hibernate框架(2)---Hibernate的核心API

    Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...

  2. C++版 - Leetcode 69. Sqrt(x) 解题报告【C库函数sqrt(x)模拟-求平方根】

    69. Sqrt(x) Total Accepted: 93296 Total Submissions: 368340 Difficulty: Medium 提交网址: https://leetcod ...

  3. HashMap源码之常用方法--JDK1.8

    常用方法 hash(key) static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCo ...

  4. [Java 泥水匠] Java Components 之一:Java String (肯定有你不懂的)

    作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 1.1 前言 说起String,大家最熟悉不 ...

  5. .Net程序员学用Oracle系列(14):子查询、集合查询

    1.子查询 1.1.子查询简介 1.2.WITH 子查询 2.集合查询 2.1.UNION 和 UNION ALL 2.2.MINUS 2.3.INTERSECT 2.4.集合运算与 ORDER BY ...

  6. springboot情操陶冶-@Configuration注解解析

    承接前文springboot情操陶冶-SpringApplication(二),本文将在前文的基础上分析下@Configuration注解是如何一步一步被解析的 @Configuration 如果要了 ...

  7. Spring Boot (五)Spring Data JPA 操作 MySQL 8

    一.Spring Data JPA 介绍 JPA(Java Persistence API)Java持久化API,是 Java 持久化的标准规范,Hibernate是持久化规范的技术实现,而Sprin ...

  8. Java——this关键字

    前言 this关键字属于Java中比较复杂的关键字之一,若是学习过C++或者其他的一些面向对象语言也会遇到this这个关键字并且都会看到this的含义就是表示当前对象.什么叫做表示当前对象?this在 ...

  9. Go基础系列:简单数据类型

    每一个变量都有数据类型,Go中的数据类型有: 简单数据类型:int.float.complex.bool和string 数据结构或组合(composite):struct.array.slice.ma ...

  10. Java中net.sf.json包关于JSON与对象互转的坑

    在Web开发过程中离不开数据的交互,这就需要规定交互数据的相关格式,以便数据在客户端与服务器之间进行传递.数据的格式通常有2种:1.xml:2.JSON.通常来说都是使用JSON来传递数据.本文正是介 ...