[英]Issue with JSON.stringify adding a extra \ and “” to my Json object
嗨我正在使用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發送到我的Web API的方式:
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;
...
看起來您將字符串作為地圖中的值。 你應該做的事情如下:
var objMap = {"JObject" : ValuesArray};
var json = JSON.stringify(objMap)
發生了什么事情你是對你的值數組進行雙json編碼 - 注意你的“無效”JSON值實際上是一個JSON字符串而不是你想要的數組。
編輯看起來你正在將JSON字符串的地圖粘貼到一個數組中然后對其進行字符串化。 這里有一個jsfiddle應該可以幫助你得到你想要的東西 - http://jsfiddle.net/4G5nF/
在您的帖子請求中,試試這個
var jObject = {"JObject" : ValuesArray};
$.ajax({ url: address,
type: 'POST',
dataType: 'json',
data: jObject,
success: function (data) { .. }});
請注意數據屬性的更改。 這是一個為您自動JSONified的值。
可能你有一個舊的prototype
庫。 當我刪除它時,bug已經消失了
const config = {a: 1, b: 2}
console.log(JSON.stringify(JSON.stringify(config)))
“{\\”a \\“:1,\\”b \\“:2}”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.