如何在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
}
}