为什么节点请求的主体总是一个字符串?
Why is the body of the node request is always a string?
我正在尝试使用 npm 包在节点中执行 API GET 调用。但是,由于某些原因,无论如何,请求的主体始终是字符串(而不是对象或数组)。任何人都知道为什么会这样,我该怎么做才能阻止它这样做?
示例(这个API应该是return一个数组,但正文是一个字符串):
正文:'["I call this turf ‘n’ turf. It\'s a 16 oz T-bone and a 24 oz porterhouse. Also, whiskey and a cigar. I am going to consume all of this at the same time because I am a free American."]'
通常,当您向服务器发送数据或从服务器发送数据时,它会作为 'serialized' 字符串发送。此字符串通常采用 XML 或 JSON 格式。由于看起来您正在使用 JSON 字符串,因此您应该能够使用 var obj = JSON.parse(str).
解析字符串
看看this post。我认为这与您正在做的事情类似(Ajax 使用 Node 请求)。查看给出的答案表明使用 JSON.parse() 函数解析正文以从字符串中检索原始对象。
另请参阅 how HTTP works - 超文本传输协议。这是用于通过 Internet 发送和接收数据的方法。数据以可读的字符串格式发送。
我正在尝试使用 npm 包在节点中执行 API GET 调用。但是,由于某些原因,无论如何,请求的主体始终是字符串(而不是对象或数组)。任何人都知道为什么会这样,我该怎么做才能阻止它这样做?
示例(这个API应该是return一个数组,但正文是一个字符串): 正文:'["I call this turf ‘n’ turf. It\'s a 16 oz T-bone and a 24 oz porterhouse. Also, whiskey and a cigar. I am going to consume all of this at the same time because I am a free American."]'
通常,当您向服务器发送数据或从服务器发送数据时,它会作为 'serialized' 字符串发送。此字符串通常采用 XML 或 JSON 格式。由于看起来您正在使用 JSON 字符串,因此您应该能够使用 var obj = JSON.parse(str).
解析字符串看看this post。我认为这与您正在做的事情类似(Ajax 使用 Node 请求)。查看给出的答案表明使用 JSON.parse() 函数解析正文以从字符串中检索原始对象。
另请参阅 how HTTP works - 超文本传输协议。这是用于通过 Internet 发送和接收数据的方法。数据以可读的字符串格式发送。