cocos creator笔记(1)
关于TS导入Json的问题
将Json字符串转成条件语句的问题
在使用cocos导入Json数据库时发先一个问题,在我的Json数据库中有类似“a>b”这样的判断条件,想在if()的判断语句中直接使用,但是不管怎么改变a和b的大小得到的结果一直为True。
后来通过各种实验发现原来在json解析过来的数据除了数字可以直接在Js中使用,其它格式的数据全部都是字符串类型,如果直接使用的话在if()语句中只是判断字符串是不是空,并不判断其中的条件。
因为是数据格式问题所以直接用JSON.parse();的方法并不能直接转译,出来的其实还是字符串。
也尝试用JSON.stringify(“Json数据”).replace(/"/g, “”)的方式消除两边“”的方法,但你本身就是一个字符串,双引号不是字符,只是代表a>b是字符串,所以结果自然就是a>b,不存在去不去掉之说,所以这个方法是不行的。通过打印出来的数据并不是只有带“”的才是字符串类型。
将Json字符串转成条件语句的方法
正确的方式其实很简单,使用eval();语句直接处理数据。
eval() 是全局对象的一个函数属性。
eval() 的参数是一个字符串。如果字符串表示的是表达式,eval() 会对表达式进行求值。如果参数表示一个或多个 JavaScript 语句,那么eval() 就会执行这些语句。
所以解决的方法是if(eval(“a>b”)),这样就可以直接使用字符串做判断表达语句了。
总结
通过打印出来的数据并不是只有带“”的才是字符串类型,用了太多的方法,其实是最开始的思路