如何在nodejs中处理来自android的JSON

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在nodejs中处理来自android的JSON相关的知识,希望对你有一定的参考价值。

如何在nodejs中处理来自android的JSON

我正在使用express在节点中构建rest API。我的API由Web客户端和Android使用。来自android数据的是这种形式

"{"info":"abc"}" 

从反应应用程序它以这种形式出现

{ info:"abc"} 

那么它的解决方案是什么我搜索它但却找不到任何东西。并告诉我在rest API中交换数据的更好方法是什么。

我试过的。

当我使用JSON.parse它与android工作正常,但它通过错误

SyntaxError: Unexpected token o in JSON at position 1   

如果我使用JSON.stringify从react app发送数据,则会出现此错误

Cannot convert object to primitive value
答案

您正在收到一个JSON字符串,只需使用JSON.parse(),如下所示:

const object = JSON.parse(your_JSON_string)

编辑:因为你之后改变了问题,如果你得到了

SyntaxError:位置1的JSON中出现意外的标记o

它(可能)意味着你已经有了一个对象,不需要在它上面调用JSON.parse()

关于您在尝试从React应用程序发送数据时遇到的错误,您需要将请求中的content-type标头设置为正确的内容类型。

我的建议是在运行任何解析之前尝试快速检查类型,这有点类似于:

function getOrParseObject(your_received_object){
    if(typeof(your_received_object) === 'string') {
        // It's a string, should be parsed, so:
        return JSON.parse(your_received_object)
    } else if (typeof(your_received_object) === 'object'){
       // It's already an object, no need to parse it
       return your_received_object
    }
}

以上是关于如何在nodejs中处理来自android的JSON的主要内容,如果未能解决你的问题,请参考以下文章

如何以刷新率在nodejs中显示来自mysql的数据

如何在 NodeJS、Mongoose 和 TypeScript 中使用日期和时间?

如何在 Nodejs 中使用来自 Windows 应用商店的服务器证书

如何显示来自 nodejs 服务器的图像

如何删除 nodejs/html 中的科学记数法并仅以十进制显示?

处理删除 NodeJS 中可能很忙的文件的正确方法是啥?