如何使用Angularjs拆分和解析json数组的特定值?

时间:2016-03-02 12:48:54

标签: angularjs json

我如何使用split parsejson特定angularjs数据。

我的json

 [{"id":"1", "stud":" name=Alex, roll_no=12 | class=12,sec=1" , "tech":"Sam"},
  {"id":"2", "stud":" name=john, roll_no=13 | class=12,sec=2" , "tech":"Sandy"},
  {"id":"3", "stud":" name=Cate, roll_no=14 | class=12,sec=1" , "tech":"Sandy"},
 ]

我想解析这个json格式的数据,比如 ID = 1

姓名= Alex。
Roll No = 12。
类= 12。
部= 1。
老师=萨姆。

2 个答案:

答案 0 :(得分:0)

使用reduce迭代整个集合。 在集合中的每个Object上,使用Regular Expressions解析stud属性。创建新字符串并将其添加到新集合中。

// Pseudocode
collection.reduce((memo, item) => {
    const values = item.stud.match(" name=Alex, roll_no=12 | class=12,sec=1".match(/^ name=(\w*), roll_no=(\d{2}).../))
    // Add it to memo in a format you like
    return memo
})

答案 1 :(得分:0)

我写了一些函数......

function getRowFromJson(json, id){
   for(var i=0; i<json.length; i++) 
     if('undefined' == json[i].id) continue;
     else if(json[i].id==id) return json[i];
   return false;
}

function parseStudFromRow(row){
  var stud = {};
  var chunks = row.stud.split("|");
  for(var i=0; i<chunks.length; i++){
    var morechunks = chunks[i].split(",");
    for(var n=0; n<morechunks.length; n++){
      var chunkage = morechunks[n].split("=");
      stud[chunkage[0].trim()] = chunkage[1].trim();
    }
  }
  return stud;
}

你这样使用它..

var row = getRowFromJson(json, 1);
var stud = parseStudFromRow(row);
console.log(stud);

查看示例.. https://jsfiddle.net/o0v6nyzu/2/