解析JSON数据的优化方法 [英] Optimized way to parse JSON data

查看:276
本文介绍了解析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对其进行解析并像这样进行迭代;

I am parsing it using jQuery and iterating it like this;

            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值吗?

I'm not too sure if iterating this in a for loop is a good idea. Could anyone please suggest me a better/optimized way to iterate the parsed json value?

推荐答案

目前的操作方式是最有效的操作方式,除了:

The way you're doing it just now is the most efficient way to do it, except:

var Messages = plainData[j].Messages;
var _messages = " ";
for (var i = 0; i < Messages.length; i++)
    _messages += Messages[i] + "\n";

也可以写成更好的形式:

Could also be written better as :

_messages = plainData[j].Messages.join('\n') + '\n';

这篇关于解析JSON数据的优化方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆