阅读 161

Node.js 解析JSON

Node.js-用于解析的中的json数据时,我们可以使用javascript引擎的JSON.parse()函数。

使用JSON数据的信息很少

  • 值对是基础。

  • {} 包含一个元素。

  • []包含一个元素数组。

  • 一个元素可以有多个key value对。

  • 值可以是简单的值,例如数字或字符串等,也可以是元素或数组。

  • 数组中的元素可以使用索引访问

  • 多个值对或元素用逗号分隔

一个简单的示例Node.js JSON解析程序

以下示例可帮助您使用JSON.parse()函数并从JSON对象访问元素。

nodejs-parse-json.js

// json数据var jsonData = '{"persons":[{"name":"John","city":"New York"},{"name":"Phil","city":"Ohio"}]}'; 
 // 解析jsonvar jsonParsed = JSON.parse(jsonData); 
 // 访问元素console.log(jsonParsed.persons[0].name);

运行nodejs-parse-json.js的终端输出

arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node nodejs-parse-json.js 
John

示例– Node.js解析JSON文件

我们将读取一个包含JSON数据的File到一个变量,然后解析该数据。

考虑以下JSON文件sample.json

sample.json

 { 
    "persons": [{ 
            "name": "John", 
            "city": "Kochi", 
            "phone": { 
                "office": "040-528-1258", 
                "home": "9952685471"            } 
 
        }, 
        { 
            "name": "Phil", 
            "city": "Varkazha", 
            "phone": { 
                "office": "040-528-8569", 
                "home": "7955555472"            } 
        } 
    ] 
 }

Node.js JSON文件解析程序

nodejs-parse-json-file.js

// 引入文件系统模块var fs = require('fs'); 
 // 读取文件sample.json文件fs.readFile('sample.json', 
    // 读取文件完成时调用的回调函数    function(err, data) {  
        // json数据        var jsonData = data; 
 
        // 解析json        var jsonParsed = JSON.parse(jsonData); 
 
        // 访问元素        console.log(jsonParsed.persons[0].name + "'s office phone number is " + jsonParsed.persons[0].phone.office); 
        console.log(jsonParsed.persons[1].name + " is from " + jsonParsed.persons[0].city); 
 });

运行上面的Node.js程序。

运行nodejs-parse-json-file.js的终端输出

arjun@arjun-VPCEH26EN:~/workspace/nodejs$ node nodejs-parse-json-file.js 
John's office phone number is 040-528-1258
Phil is from Kochi

总结:

在这个Node.js教程- Node.js JSON文件解析-我们已经学会了使用JSON.parse()函数,在示例Node.js程序的帮助下从一个变量或文件解析JSON数据。


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐