JSON配置

JSON配置,第1张

根目录有一个 app.json 和 project.config.json,此外在 pages/logs 目录下还有一个 logs.json

JSON的值只能是以下几种数据格式,其他任何格式都会触发报错,例如 JavaScript 中的 undefined。

数字,包含浮点数和整数

字符串,需要包裹在双引号中

Bool值,true 或者 false

数组,需要包裹在方括号中 []

对象,需要包裹在大括号中 {}

Null

还需要注意的是 JSON 文件中无法使用注释,试图添加注释将会引发报错。

配置项细节可以参考文档 小程序的配置 app.json 。

开发工具配置

独立定义每个页面的一些属性,配置项细节可以参考文档 页面配置 。

在使用 json_encode()返回浮点类型数据时会出现精度问题

可以从实现源码看出所不同的是php5.x采用的是precision的值来作为精度运算

而php7.x采用的是serialize_precision的值

这就导致了同样的配置,不同的php版本,所得到的结果是不同的

在php7.x中serialize_precision =17

所以浮点数会保留17位的精度

{"a":0.17999999999999999}

1、更改php_ini中 serialize_precision = 17 值为14

2、在运行时动态修改serialize_precision的配置值

在使用json_encode函数前使用

设置serialize_precision值。

3、更改json_encode中传入数组的值是浮点数类型的改为字符串类型,跳过json_encode对浮点数的处理机制

原文的意思就是说设置

这将会采用一种更好的,新的算法进行精度运算

不讨论将浮点数类型的改为字符串类型的方案,只讨论serialize_precision 的取值在为-1,14,17时的性能对比

当值为-1时, 运算结果为0.63303589820862 times

当值为14时,运算结果为0.43502497673035 times

当值为17时,运算结果为1.3600780963898 times

这个问题的本质原因是由于PHP浮点数精度问题,但引发此问题的原因却是json_encode()处理浮点数精度的参数值从使用precision改为使用serialize_precision。

向json中添加数据 var json = {}json.name="test"上面的代码就会在json这个对象中添加了一个数据 向数组中添加数据 var array = new Array()var obj = new Object()obj.name="test"array.push(obj)这里是添加的一个对象,你也可以直接添加一些字符串等类型的数据

2013-04-01 *


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11741550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存