"[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. shell脚本命令(记录)

    1.重命名文件 将D盘下的A.txt 重命名为B.txt mv D:\\A.txt D:\\B.txt 2.删除文件 删除D盘下的A.txt文件 rm D:\\A.txt 3.修改文件内容并保存 // ...

  2. 缓存日志截取字段上传FTP

    #!/bin/bash awk '{print $3,$4,$5,$6,$9,$11,$12,$14,$15,$18}' /usr/local/tcacheserver/var/log/traffic ...

  3. 在IT行业获得成功 你只需一项技能[转]

    能同时使用五种编程语言(包括一种机器语言)?不是. 项目管理能力,再高就是获得PMP认证?也不是. 超强的口才和书面沟通能力,正如工作职位中描述的那样?这不是痛点,但可以学习. 我曾经与最好的IT专业 ...

  4. mktemp 命令

    Linux mktemp命令用于建立暂存文件. mktemp建立的一个暂存文件,供shell script使用. mktemp命令专门用来创建临时文件,并且其创建的临时文件是唯一的.shell会根据m ...

  5. leetcode — search-insert-position

    /** * Source : https://oj.leetcode.com/problems/search-insert-position/ * * Created by lverpeng on 2 ...

  6. 基于vue与vux做的可滑动tab组件(附源码)

    背景 前不久,刚完成了一个商品列表+购物车功能的页面,因为一级商品分类在顶部tab中显示,可滑动,间距可定制,如下图所示: 定制的tab需求如下: 1. 每个tab-item的间距是相同的,可定制 2 ...

  7. 基于jQuery消息提示框插件Tipso

    今天要分享的这款jQuery消息提示框插件名叫Tipso,它的特点是可以定义提示框的显示位置,以及动态改变提示框的提示内容,应该说是一款相当灵活的jQuery消息提示框插件.效果图如下: 在线预览   ...

  8. Angular2入门:TypeScript的类 - 参数属性:定义和初始化类成员

  9. Jenkins入门之任务基本操作

    首先先简单讲一下Jenkins构建任务各种图标的含义 我的主界面有以下构建任务,这里前两列都是图标,第一列为构建的状态,前面已经讲过蓝色代表成功,红色代表失败.当然那是针对一次构建,一个构建任务可能有 ...

  10. h5py快速入门指南

    h5py是Python语言用来操作HDF5的模块.下面的文章主要介绍h5py的快速入门指南,翻译自h5py的官方文档:http://docs.h5py.org/en/latest/quick.html ...