我拿到的json本质是一个JS的赋值语句,如:
var data = {
"key": "value"
};
对于这种格式,是没办法直接使用iOS内置的方法来解析的。我的解决方案是:取回数据后,先转为NSString格式,然后通过字符串方法去掉var data =和尾部的;,再转为NSData格式,再用json
序列化方法转换出来。
如果有更好的方案,也希望有同学能分享出来学习哈。
我拿到的json本质是一个JS的赋值语句,如:
var data = {
"key": "value"
};
对于这种格式,是没办法直接使用iOS内置的方法来解析的。我的解决方案是:取回数据后,先转为NSString格式,然后通过字符串方法去掉var data =和尾部的;,再转为NSData格式,再用json
序列化方法转换出来。
如果有更好的方案,也希望有同学能分享出来学习哈。
1
youxiachai May 25, 2015
蛋碎..这个不叫json...是直接的js脚本..
如果是抓网页的话,那就无解了..(如果可能倒是可以eval)取值 如果是后台返回的..明显那个人的实现有问题.. |
2
publicID001 May 25, 2015 JavaScriptCore
|
3
inmyfree May 25, 2015
@youxiachai 洗洗睡吧
|
4
jun4rui May 25, 2015
这个接口是谁写的?这不是json啊。
|
5
tuoxie007 May 25, 2015 via iPhone
想办法执行一下js脚本吧,比如比较土的办法,用webview
|
6
pysama OP |
7
tinyhill May 25, 2015 via iPhone
js 不是可以直接执行吗?再不济用 eval 啊
|
8
yangxiongguo May 25, 2015
N 年前的果然屌,返回后直接执行。
|
9
lixia625 May 25, 2015
|
10
saber000 May 25, 2015
正则贪心匹配花括号,这样:
\{.*\} |
11
luciferlu May 25, 2015
可以算是JSONP吧,http://en.wikipedia.org/wiki/JSONP
|
14
learnshare May 25, 2015
这是 JavaScript,可以 eval(),不过不建议这么干
|
15
WildCat May 25, 2015
String 替换是最好的方式了吧,eval() 很浪费性能,还得初始化个 JavaScriptCore
|
16
msg7086 May 25, 2015
找到第一个等号和最后一个分号,然后strip掉嘛
|
17
pysama OP 集思广益,一起谢过LS的各位同仁指点哈
|
18
bombless May 25, 2015
你可以爬ast啊
这种工具我记得有一些不错的 |
21
typcn May 25, 2015
如果你确定那个 var data 不会变,这就是最好/最快的办法了。
如果可能变的话,就放到 webview 里面运行一下 |
22
rcmerci May 26, 2015
我擦。。这是json吗
|