我在这里有一个Json并将其发布到服务器。
newJson.push({ Klasse_Id: parseInt(key), MaxTeilnehmer: value.MaxTeilnehmer });
$http.post('@Url.Content("~/Gw2RaidCalender/SaveEvent")', {
model: saveEventObject,
klassenModel: JSON.stringify(newJson)
}).then(function successCallback(result) {
console.log(result.data);
}),
function errorCallback(result) {
console.log(result.data);
};
现在我的C#代码中有这个
public string SaveEvent(EventModel model, string klassenModel)
{
JObject result = JObject.Parse(klassenModel);
现在我收到此错误
Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray.
看起来它不是一个有效的Json字符串!?
"[{\"Klasse_Id\":1,\"MaxTeilnehmer\":2}]"
但是我在https://jsonlint.com/上检查了它,并说它有效。
我想从这个Json中获取值。
编辑:
我解决了它,现在我可以保存数据了
var jsonKlassen = JArray.Parse(klassenModel);
foreach (JObject content in jsonKlassen.Children<JObject>())
{
int klasse_Id = (int)content.Property("Klasse_Id").Value;
int maxTeilnehmer = (int)content.Property("MaxTeilnehmer").Value;
var klassenmodel = new Klasse2EventModel
{
Klasse_Id = klasse_Id,
MaxTeilnehmer = maxTeilnehmer,
Event_Id = newEventId
};
_db.Klasse2EventModel.Add(klassenmodel);
_db.SaveChanges();
}
答案 0 :(得分:0)
因为此JSON字符串包含数组。试试这个:
test