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


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

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

  • 相关阅读:
    用于表示socket的结构体
    Parcelable与Serializable接口的用法和区别
    java类初始化顺序
    孙卫琴java面向对象编程学习笔记
    linux档案权限
    js弹出模态与非模态页面
    ubuntu开启默认的root用户
    java开发实战学习笔记1
    JQuery ajax回调函数
    hadoop命令
  • 原文地址:https://www.cnblogs.com/baiyygynui/p/6683499.html
Copyright © 2020-2023  润新知