您好:
請問前端js 使用
我 dataArrString 是
arr =[ {NAME:'AA',AGE:18},{NAME:'BB',AGE:20},{NAME:'CC',AGE:30} ]
let str_arr = JSON.stringify(arr);
getXXX(str_arr); //
function getXXX(dataArrString) { // 現有架構需用¶meters=傳字串
var result = "";
$.ajax({
type: "POST",
url: '...',
data: " ...."¶meters=" + dataArrString,
cache: false, async: false,
success: function (data) {
result = data;
}
});
return result;
}
這樣 我C# 後端
public object getXXX(object[] objParam) // 取得 GRID結果回傳
{
string paraX = (string)objParam[0];
}
1.我該如何 將 傳入的array解開,然後取出每一個json
用JSONArray 他說不可用(紅字),JSONObject 也有問題
2.還是前端除了[{},{},{}] 外
也可用{ {},{},{} }
來處理? 該如何做
謝謝
C#處理JSON建議用newtonsoft json套件
1.將JSON string => JArray
https://www.newtonsoft.com/json/help/html/ParseJsonArray.htm
string json = "[{NAME:'AA',AGE:18},{NAME:'BB',AGE:20},{NAME:'CC',AGE:30}]";
JArray jArray = JArray.Parse(json);
Console.WriteLine(jArray.ToString());
2.使用ForEach存取JArray當中所有的JSON
foreach (JObject json in jArray)
{
string name = json.GetValue("NAME").ToString();
string age = json.GetValue("AGE").ToString();
}
您好:
謝謝
但 我 由foreach (JObject json in jArray)
json DEBUG 出來的結果
是否多了一組{}
因為string order = json.GetValue("order").ToString();
就錯誤!
謝謝!
{{
"ordno": "O12345678",
"item": "03"
}}
{{
"ordno": "O12345678",
"item": "02"
}}
因為是Null的關係所以會有錯
你可以寫判斷式處理,例如:
string order = "";
if (json.GetValue("order") != null)
{
order = json.GetValue("order").ToString();
}
如果嫌這樣太長,可以用 ?? (null-coalescing-operator)
的寫法化簡,相當於:
string order = (json.GetValue("order") ?? "").ToString();
或者
string order = json.GetValue("order")?.ToString() ?? "";
另外稍微提醒一下
在描述問題的內容時,如果有出現錯誤
最好提供出現的錯誤訊息或畫面
還有善用</>
來貼程式碼