优化了解析 JSON 数据的方式

Optimized way to parse JSON data

本文关键字:方式 数据 JSON 了解 优化      更新时间:2023-09-26

我有一个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';

在较旧的浏览器(以及一些不太旧的浏览器)中,如果可以使用负 while 循环,它将比 for 循环更快:

而不是

for (var j = 0; j < plainData.length; j++) { 

var j=plainData.length;
while(j--) {

曾经有一个博客引用了一些定量指标,但该页面已死,但是结果可以相当容易地复制。

对原因的猜测是比较等于零而不是大于或小于比较,并且Javascript作为一种解释性语言可以内联代码以使用已知的术语点进行优化,但我对此声明没有定量知识。

在网络房间徘徊了一会儿后,我发现了一些量化:

https://blogs.oracle.com/greimer/entry/best_way_to_code_a