我正在用JAVA和C#构建REST API,我想知道应该如何将数据传递给这些服务。在HTTP POST中传递JSON对象vs JSON字符串
什么我熟悉的正确方法是发送JSON对象作为POST主体中的数据:
{name:'Dor'}
,但我也可以传递一个字符串和解析JSON在我的服务:
'{name:'Dor'}'
性能因素的最佳方式是什么?或任何其他因素?
我正在用JAVA和C#构建REST API,我想知道应该如何将数据传递给这些服务。在HTTP POST中传递JSON对象vs JSON字符串
什么我熟悉的正确方法是发送JSON对象作为POST主体中的数据:
{name:'Dor'}
,但我也可以传递一个字符串和解析JSON在我的服务:
'{name:'Dor'}'
性能因素的最佳方式是什么?或任何其他因素?
基本上,如果你需要通过jQuery发送json数据,那么我们需要使用stringify,否则数据将被序列化为key = value对。
所以,你不能直接通过jquery ajax方法发送json对象。 它是如何工作的篷子后面:
在$阿贾克斯的功能,如果我们提供的数据作为
data :{key1:"value1", key2:"value2"}
is serialized to key1=value1&key2=value2
如果我们提供的数据作为
data :'{key1:"value1", key2:"value2"}' or JSON.stringify({key1:"value1", key2:"value2"})
is sent as {key1:"value1", key2:"value2"}
所以,我们可以得出结论的是, ,我们不能直接通过jquery传递json对象,我们只能发送json字符串。希望这能澄清每个人。
由于HTTP请求体最终是一个字节序列,所以当请求被创建时,你的JS对象必须被序列化为JSON,所以它不是“更好”,也不是更好的性能。没有看到引擎盖下正在执行什么。 – CouchDeveloper
检查我的上述修改后的答案。 –
无论如何,服务器将不得不分析请求负载,所以更好地选择第一个解决方案。 – sp00m
@ sp00m将字符串解析为负载比JSON更快吗? –
我想是的,但无论如何你必须解析JSON。这意味着你将只有* time_parsing_string + time_parsing_json *而不是* time_parsing_json *。此外,它看起来像[过早优化](http://programmers.stackexchange.com/a/80092/72730)';)' – sp00m