作业帮 > 综合 > 作业

急,急,急,FLEX解析不带引号的JSON

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/03 16:23:03
急,急,急,FLEX解析不带引号的JSON
JSON标准格式为{["field1":"value1","field2":"value2"]},但我这儿的json格式没有引号,或者部分有引号,应该怎么处理呢,如{[“field1”:value,field2:value,filed3:'value']}?
包括对复杂json对象的解析,如[{name:value},{name:value},{name:[{name:value}],name:{name:value}}]这种结构的
自己写个通用方法就是了...最简单的方法就是截取,替换,分隔...就OK了啊...
再问: 可以详细点吗?
再答: var str:String = jsonStr.subString(2,jsonStr.length-2);//去掉大中括号;

str = str.replaceAll("\"","");str = str.replaceAll(" ' ","");//去掉双引号和单引号可换成正则表达式..
var jsonArray:Array = str.splict(",");//分隔
for eacn(var str:String in jsonArray){
var field = str.splict(":")[0];

var value = str.splict(":")[1];
}
再问: 这只是简单的json嘛,如果里面存在多个组合的复杂对象怎么办呢,比如[{name:value},{name:value},{name:[{name:value}],name:{name:value}}],这种情况像你那样就不行了啊,不知道这样有没有解决办法啊
再答: 大哥...聪明点行不行.....循环是干什么用的?先截最外层[]..再细分就是了....递归循环很简单的操作字符串的代码....
再问: 主要是你说的用逗号分隔啊,如果里层存在[],那这个用逗号分隔就会出现把一个里层里面的东西分隔开啊,比如[{name:value},{name:value},{name1:[{name:value,name:value}],name:{name:value}}],这样name1的就被分成了两段了么
再答: .....解析字符串...找规则...或者看一下开源的JSON里解析的具体方法....
方法很多....
如果非要解析字符串...可以正则表达式分....也可能自己慢慢先内层[]再外层...

最好的解决办法就是...传给你的json...定义好格式...
再问: 好吧,谢谢你,定义好格式这个办法没法去控制,我尝试一下你说的办法吧,谢谢