优化解析JSON数据的方法
我有一个JSON数据
[ { "Name": "Tom", "Email": "tom@gmail.com", "Notes": "Yea, it's good", "Ratings": "5", "Messages": [ "Tom - I am good", "System - How're you doing?", "Tom - True, that!", "System - Oh Yes! ;) " ] }, { "Name": "Sunny", "Email": "sunny@gmail.com", "Notes": "Yea, it's good", "Ratings": "2", "Messages": [ "Sunny-I am good", "System - How're you doing?", "Sunny - True, that!", "System - Oh Yes! ;) " ] } ]
我正在使用jQuery解析它并像这样迭代它;
var jsonData = $("#jsonData").val(); var plainData = $.parseJSON(jsonData); for (var j = 0; j < plainData.length; j++) { var Name = plainData[j].Name; var Email = plainData[j].Email; var Notes = plainData[j].Notes; var Ratings = plainData[j].Ratings; var Messages = plainData[j].Messages; var _messages = " "; for (var i = 0; i < Messages.length; i++) _messages += Messages[i] + "\n"; }
我不太确定在for循环中迭代这个是个好主意。 任何人都可以建议我更好/优化的方式迭代解析的json值?
你现在这样做的方式是最有效的方法,除了:
var Messages = plainData[j].Messages; var _messages = " "; for (var i = 0; i < Messages.length; i++) _messages += Messages[i] + "\n";
也可以写得更好:
_messages = plainData[j].Messages.join('\n') + '\n';
在较旧的浏览器中(有些不是那么老),如果可以使用,则负循环将比for循环更快:
代替
for (var j = 0; j < plainData.length; j++) {
使用
var j=plainData.length; while(j--) {
曾经有一个博客参考了一些量化指标,但该页面已经死了,但结果可以相当容易地复制。
关于为什么比较是等于零而不是大于或小于比较的猜测,以及作为解释语言的Javascript可以内联代码以使用已知的术语点进行优化但是我没有定量知识在这个声明中。
在网络房间闲逛之后,我发现了一些量化: