2016-04-26 15 views
0

JAVAとC#でREST APIを構築していますが、これらのサービスにデータを渡す方法が不思議でした。HTTP POSTのJSONオブジェクトとJSON文字列の受け渡し

{name:'Dor'} 

が、私はまた、文字列を渡すと、私のサービスでJSONを解析することができます:私は正しい方法はPOSTボディ内のデータとしてJSONオブジェクトを送信するためにあるように精通しているよ何

'{name:'Dor'}' 

パフォーマンス係数からどのような方法が適していますか?またはその他の要因?

+0

サーバーは、要求ペイロードを解析する必要があります。そのため、最初の解決方法を選択してください。 – sp00m

+0

@ sp00mペイロードの解析は文字列としてJSONより速くなりますか? –

+0

私はそう思いますが、とにかく後でJSONを解析する必要があります。これは* time_parsing_json *の代わりに* time_parsing_string + time_parsing_json *を持つことを意味します。さらに、[時期尚早の最適化](http://programmers.stackexchange.com/a/80092/72730) ';)のように見えます。 – sp00m

答えて

0

jsonを介してjsonデータを送信する必要がある場合は、stringifyを使用する必要があります。そうでない場合、データはkey = valueのペアにシリアル化されます。

したがって、jsonオブジェクトをjquery ajaxメソッド経由で直接送信することはできません。それはフードの後ろ仕組み :$アヤックス機能で

、我々は

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"} 

としてデータを提供する場合、私たちが結論できることということですjsonオブジェクトをjquery経由で直接渡すことはできません.Json文字列のみを送信できます。これが皆を明確にすることを願っています。

+0

HTTPリクエストボディは最終的にバイト列であるため、リクエストが作成されると、JSオブジェクトはJSONにシリアライズされなければならないため、パフォーマンスが向上しません。フードの下で正確に何が実行されているのか分かりません。 – CouchDeveloper

+0

私の上記のansを確認してください。 –

関連する問題