"[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. odoo开发笔记 -- div标签代替odoo button写法

    odoo开发笔记 -- div标签代替odoo button写法 并调用自定义js <footer> <div id="confirm_request_cloud_repo ...

  2. Redis(4)---主从复制

    Redis主从复制 一.环境搭建      既然是主从复制,那肯定需要多个redis服务器,下面我先创建3个服务器,™的端口号分别是:6379.6380.6381.   1.复制默认配置文件redis ...

  3. 11张PPT介绍Paxos协议

    之前翻译了<The Part-Time Parliament>一文,论文非常经常,强烈推荐读一读原文.翻译完论文后,希望自己能用简单的描述来整理自己的理解,所以花了一些时间通过PPT的形式 ...

  4. 打成Jar包后运行报错 Unable to locate Spring NamespaceHandler for XML schema namespace

    MAVEN项目,在IDEA中运行正常,但是把它打成jar包后再运行就会出现异常:   Exception in thread "main" org.springframework. ...

  5. Apache-Flink深度解析-TableAPI

    您可能感兴趣的文章合集: Flink入门 Flink DataSet&DataSteam API Flink集群部署 Flink重启策略 Flink分布式缓存 Flink重启策略 Flink中 ...

  6. Oracle性能优化之查询语句通用原则

    作者早期文章 Oracle优化 索引是表的一个概念部分 , 用来提高检索数据的效率, ORACLE 使用了一个复杂的自平衡 B-tree 结构 . 通常 , 通过索引查询数据比全表扫描要快 . 当 O ...

  7. linux 命令 — find

    find 基本形式 find base_path base_path可以是任何目录,find会从该目录开始往下寻找 find . -print 列出当前目录下所有的文件和目录,以'\n'作为分隔符 f ...

  8. Go signals 信号

    Go中通过os/signals包,可以接受系统信号. package main import "fmt" import "os" import "os ...

  9. 打造SharePoint之在线开发神器SPOnlineDevelopTool(一)——概述

    做SharePoint开发有时候是一件比较痛苦的事情,毕竟庞大的框架总是笨重的~~ 往往如果采取传统的方式开发SharePoint的话,更改一个代码需要有以下操作: 1)更改代码 2)VS编译——&g ...

  10. Go基础系列:互斥锁Mutex和读写锁RWMutex用法详述

    sync.Mutex Go中使用sync.Mutex类型实现mutex(排他锁.互斥锁).在源代码的sync/mutex.go文件中,有如下定义: // A Mutex is a mutual exc ...