Node.js后端开发 - 基础篇 #10 web 服务器 part 2 响应 JSON

文章目录

前言

web服务器响应json数据

简单介绍 json的生成和传输


前言

上一篇文章我们介绍了nodejs的web 服务器 part 1,内容如:web服务器请求和响应简单介绍、用nodejs创建一个简单的web服务器等,详见:
Node.js后端开发 - 基础篇 #9 web 服务器 part 1 介绍,这篇文章我们将来介绍一下web 服务器是怎么响应返回JSON格式的数据的?我们在做api开发的时候会经常用到json,客户端也会请求json进行解析处理得到一些数据,之前上篇文章我们介绍到是怎么响应纯文本的,下面我们开始讲响应返回JSON格式的数据!

web服务器响应json数据

我们先来看看代码,如下:

var http = require('http');

var onRequest = function (request, response) {
    console.log('Request received');
    // response.writeHead(200, { 'Content-Type': 'text/plain' });
    response.writeHead(200, { 'Content-Type': 'application/json' });

    //定义json对象
    var myObj = {
        name: "yyh",
        job: "android",
        age: 18
    };
    
    //response.end('hello from server');
    //把json数据作为响应内容输出出来
    response.end(JSON.stringify(myObj));
}

var server = http.createServer(onRequest);

server.listen(3000, '127.0.0.1');
console.log('server started on localhost port 3000');

首先我们运行启动server

MacBook-Pro:hello-nodejs luminal$ node app
server started on localhost port 3000

然后在我的谷歌浏览器上面输入:http://localhost:3000/,就会返回如下json数据

{"name":"yyh","job":"android","age":18}

表示客户端获取到了json数据!同样终端输出了 Request received,表示收到了客户端发送过来的请求

MacBook-Pro:hello-nodejs luminal$ node app
server started on localhost port 3000
Request received
Request received

stringify方法使myObj变成一个字符串类型的json,它其实是一个序列化的过程,这样就可以用于传输。如果你要在客户端取出来,那么就要进行反序列化!

简单介绍 json的生成和传输

下面我们去浏览器的控制台,演示一下,我们可以如下操作:

1、首先把控制台清理一下,如下

2、然后输出如下语句  

(1)首先我们把定义的json对象,复制进去,回车,然后输入myObj,回车,它返回的是json数据对象

{name: "yyh", job: "android", age: 18}

点击左边小三角,还可以下拉预览

(2)然后我们输入,JSON.stringify(myObj);  ,回车,我们可以看到它变成一个用双引号包裹起来的字符串

"{"name":"yyh","job":"android","age":18}"

就是说它还是一个字符串,但是它是一个json格式的字符串,这种格式方便客户端和服务端之间的数据传输。

(3)那么我们怎么把它取出来呢?我们输入:JSON.parse(JSON.stringify(myObj));  ,回车,它又变回来了

{name: "yyh", job: "android", age: 18}

也就是说他们是 序列化 和 反序列化 的过程,序列化就是把它转成字符串,反序列化就是把它转换为原有的对象 或 json

有关链接参考:

浏览器json自动格式化插件 — JSON formatter :

https://chrome.google.com/webstore/detail/json-formatter/bcjindcccaagfpapjjmafapmmgkkhgoa?hl=zh-CN

JSON.stringify: 

JavaScript JSON.stringify() | 菜鸟教程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被开发耽误的大厨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值