需要将字符串转换为json对象。
json对象/字符串的规则:
String Example:
var str = "1863707152859270^Exercise to lose weight^289169006^Reduce 20 pounds^Walk daily for one hour. Have a light dinner.^5/10/2013 12:00:00 AM^^1/21/2019 4:25:52 PM^Y^Frank the Tank^1/22/2019 8:50:02 AM^1/22/2019 8:50:02 AM^Frank the Tank^Abnormal LGSIL^1848065703239670^1863707006859070|1863707222859280^Exercise to lose weight^289169006^Reduce 20 pounds^Walk daily for one hour. Have a light dinner.^5/10/2013 12:00:00 AM^^1/21/2019 4:27:02 PM^Y^Frank the Tank^1/22/2019 8:50:02 AM^1/22/2019 8:50:02 AM^Frank the Tank^Abnormal LGSIL^1848065703239670^1863707006859070"
尝试次数:
var str = "1863707152859270^Exercise to lose weight^289169006^Reduce 20 pounds^Walk daily for one hour. Have a light dinner.^5/10/2013 12:00:00 AM^^1/21/2019 4:25:52 PM^Y^Frank the Tank^1/22/2019 8:50:02 AM^1/22/2019 8:50:02 AM^Frank the Tank^Abnormal LGSIL^1848065703239670^1863707006859070|1863707222859280^Exercise to lose weight^289169006^Reduce 20 pounds^Walk daily for one hour. Have a light dinner.^5/10/2013 12:00:00 AM^^1/21/2019 4:27:02 PM^Y^Frank the Tank^1/22/2019 8:50:02 AM^1/22/2019 8:50:02 AM^Frank the Tank^Abnormal LGSIL^1848065703239670^1863707006859070"
function ParseDelimList(str){
var result=[];
var rows = str.split('|');
var tmpString3 = [];
for(var i=0;i<rows.length;i++){
var fields = rows[i].split('^');
var tmpString2 = [];
for(var j=0;j<fields.length;j++){
var subfields = fields[j].split('~');
var tmpString1 = [];
for(var l=0;l<subfields.length;l++){
var tmp1 = "{"+l+":"+subfields[l]+"},"
tmpString1.push(tmp1);
};
var tmp2 = "{"+j+":"+tmpString1[j]+"},";
tmpString2.push(tmp2);
};
var tmp3 = "{"+i+":"+tmpString2[i]+"},";
tmpString3.push(tmp3);
};
return tmpString3;
};
console.log(ParseDelimList(str))
最终结果(类似这样):
var json = [
"1":{
{"0":"1863707152859270"},
{"1":"Exercise to lose weight"},
{"2":"289169006"},
{"3":"Reduce 20 pounds"},
{"4":"Walk daily for one hour. Have a light dinner."},
{"5":"5/10/2013 12:00:00 AM"},
{"6":"1/21/2019 4:25:52 PM"},
{"7":"Y"},
{"8":"Frank the Tank"},
{"9":"1/22/2019 8:50:02 AM"},
{"10":"1/22/2019 8:50:02 AM"},
{"11":"Frank the Tank"},
{"12":"Abnormal LGSIL"},
{"13":"1848065703239670"},
{"14":"1863707006859070"},
},
"2":{
{"0":"1863707152859270"},
{"1":"Exercise to lose weight"},
{"2":"289169006"},
{"3":"Reduce 20 pounds"},
{"4":"Walk daily for one hour. Have a light dinner."},
{"5":"5/10/2013 12:00:00 AM"},
{"6":"1/21/2019 4:25:52 PM"},
{"7":"Y"},
{"8":"Frank the Tank"},
{"9":"1/22/2019 8:50:02 AM"},
{"10":"1/22/2019 8:50:02 AM"},
{"11":"Frank the Tank"},
{"12":"Abnormal LGSIL"},
{"13":"1848065703239670"},
{"14":"1863707006859070"},
}
];
在这里,您准备好了JSON.stringify
。三重split
跟随,然后带map
您到达那里:
var str = "1863707152859270^Exercise to lose weight^289169006^Reduce 20 pounds^Walk daily for one hour. Have a light dinner.^5/10/2013 12:00:00 AM^^1/21/2019 4:25:52 PM^Y^Frank the Tank^1/22/2019 8:50:02 AM^1/22/2019 8:50:02 AM^Frank the Tank^Abnormal LGSIL^1848065703239670^1863707006859070|1863707222859280^Exercise to lose weight^289169006^Reduce 20 pounds^Walk daily for one hour. Have a light dinner.^5/10/2013 12:00:00 AM^^1/21/2019 4:27:02 PM^Y^Frank the Tank^1/22/2019 8:50:02 AM^1/22/2019 8:50:02 AM^Frank the Tank^Abnormal LGSIL^1848065703239670^1863707006859070";
var result = str.split('|').map(x => {
return {
row: x.split('^').map(y => {
return {
field: y.split('~').map(z => {
return {
subfield: z
};
})
}
})
}
});
console.log(result);
由于您的预期结果并不完全清楚,如果有任何遗漏,请告诉我。
编辑:添加了与下面的IE 11兼容的相同解决方案:
var str = "1863707152859270^Exercise to lose weight^289169006^Reduce 20 pounds^Walk daily for one hour. Have a light dinner.^5/10/2013 12:00:00 AM^^1/21/2019 4:25:52 PM^Y^Frank the Tank^1/22/2019 8:50:02 AM^1/22/2019 8:50:02 AM^Frank the Tank^Abnormal LGSIL^1848065703239670^1863707006859070|1863707222859280^Exercise to lose weight^289169006^Reduce 20 pounds^Walk daily for one hour. Have a light dinner.^5/10/2013 12:00:00 AM^^1/21/2019 4:27:02 PM^Y^Frank the Tank^1/22/2019 8:50:02 AM^1/22/2019 8:50:02 AM^Frank the Tank^Abnormal LGSIL^1848065703239670^1863707006859070";
var result = str.split('|').map(function(x) {
return {
row: x.split('^').map(function(y) {
return {
field: y.split('~').map(function(z) {
return {
subfield: z
};
})
}
})
}
});
console.log(result);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句