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

问题描述 投票:1回答:1

如何在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
javascript node.js reactjs rest express
1个回答
2
投票

您正在收到一个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
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.