こんにちは私はJavascriptを使用して、次のコードを使用してキーと値を持つオブジェクトの配列を作成しています。
ValuesArray.push({ key: $(this).attr('someattribute'), value: $(this).val() });
その結果、私は次のようなオブジェクトの配列を持っています:
key:29; value: 'Country'
Key:12; value: '4,3,5'
それを文字列化して投稿でそのJSONを送信しようとすると、\と "が間違った形式のJSONになります。そのため、C#のコードビハインドでそのJSONをJObjectとして希望する場合、問題が発生します。 .stringifyを使用してクリーンなJSONを作成するにはどうすればよいですか?
var jObject = JSON.stringify(ValuesArray);
間違っている私のJSONは次のとおりです。
{
"JObject": "[{\"key\":\"29\",\"value\":\"Country\"}, {\"key\":\"30\",\"value\":\"4,3,5\"}]"
}
このようなJSONオブジェクトが欲しいのですが
{
"JObject": [{"key":"29","value":"Country"},{"key":"30","value":"4,3,5"}]
}
[]
と文字の周りの引用符なし\
それを解決するための良いアイデア。
ありがとうございました
JSONをAPIに送信する方法の詳細これは、JSONをWebAPIに送信する方法です。
function PostAPIRequest(address) {
var jObject = JSON.stringify(ValuesArray);
var responseJson = null;
$.ajax({
url: address,
type: 'POST',
dataType: 'json',
data: { JObject: jObject },
success: function (data) {
responseJson = data
ProcessDataResponse(responseJson);
//TODO: REFRESH THE DATA GRID
},
error: function (xhr, ajaxOptions, thrownError) {
//TODO redirect to the error page and send error email there.
alert(xhr.status);
alert(thrownError);
}
})
}
これがAPIコントローラーでどのように受信されているか
...
// POST api/datavalues/5
public string Post(int id, JObject value)
{
var temp = value;
...