我使用asp.net mvc和ms sql。它给出了2个错误。我不明白为什么。
private string Url = @"http://192.168.x.x/HbbTestLast/";
private async Task<HttpClient> GetClient()
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Accept", "application/json");
return client;
}
public async Task<IEnumerable<oyunlar>> GetAll()
{
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
HttpClient client = await GetClient();
var result = await client.GetStringAsync(Url + "/oyunlar/oyunlariGetir");
var mobileResult = JsonConvert.DeserializeObject <oyunlar>(result, jsSettings);
//return JsonConvert.DeserializeObject<IEnumerable<oyunlar>>(client.ToString(), jsSettings);
var deneme = JsonConvert.DeserializeObject<IEnumerable<oyunlar>>(mobileResult.ToString());
return deneme;
}
public async Task<IEnumerable<salonlar>> PostSalon()
{
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
HttpClient client = await GetClient();
var result = await client.PostAsync(Url,new StringContent(@"salonlars/"));
var mobileResult = JsonConvert.DeserializeObject<salonlar>(result.ToString(), jsSettings);
return JsonConvert.DeserializeObject<IEnumerable<salonlar>>(mobileResult.ToString(), jsSettings);
}
}
First error Newtonsoft.Json.SerializableException:转换值时出错......
[第二个错误] [2] Newtonsoft.Json.JsonTextReaderException:意外的字符......
我该如何解决?
更新
private async void LoadData()
{
try
{
var collection = await manager.GetAll();
foreach (oyunlar item in collection)
model.Add(item);
//lstOyunlar.BindingContext = collection;
}
catch(Exception ex)
{
await DisplayAlert("Hata :", ex.ToString(), "Ok", "Cancel");
}
}
GetAll()
使用GetAll()
和PostSalon()
更新 可序列化的GetAll()
[System.Web.Mvc.HttpGet]
public JsonResult OyunlariGetir(HttpConfiguration config)
{
var oyunListe = db.oyunlars.Include(o => o.oyun_turu).Include(o => o.salonlar);
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
var converted = JsonConvert.SerializeObject(oyunListe, null, jsSettings);
return Json(converted, JsonRequestBehavior.AllowGet);
}
和PostSalon()
[HttpPost]
public JsonResult SalonlariGetir()
{
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
var salonListe = db.salonlars;
var converted = JsonConvert.SerializeObject(salonListe, null, jsSettings);
return Json(converted, JsonRequestBehavior.AllowGet);
// return converted;
}
更新
public virtual DbSet<salonlar> salonlars { get; set; }
和
public partial class salonlar
{
public int salon_id { get; set; }
public string salon_adi { get; set; }
public string salon_adresi { get; set; }
public string salon_aciklama { get; set; }
public string salon_telno { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<oyunlar> oyunlars { get; set; }
}
“[{\”oyunlars \“:[],\”salon_id \“:300,\”salon_adi \“:\”KültürMerkeziTiyatro Salonu \“,\”salon_adresi \“:\”AntakyaLisesiKarşısı\ “,”salon_aciklama \“:\”Kültürmerkezi\“,\”salon_telno \“:\”03262160652 \“},{\”oyunlars \“:[{\”oyun_turu \“:{\”oyunlars \“: [{\“oyunculars \”:[],\“oyun_id \”:170,\“oyun_adi \”:\“KadınBirŞiir\”,\“oyun_tarihi \”:\“2018-03-08T00:00:00 \“,\”salon_id \“:400,\”tur_id \“:20,\”oyun_aciklama \“:\”8MartDünyaKadınlarGünündekadıngahaiyianlatılamazdı.. \“,\”oyun_suresi \“:\”1 SAAT \”,\ “oyun_foto \”:空}],\ “tur_id \”:20,\ “tur_adi \”:\ “DRAM \”},\ “oyunculars \”:[],\ “oyun_id \”: 160,\“oyun_adi \”:\“AdıKadın\”,\“oyun_tarihi \”:\“2017-09-09T00:00:00 \”,\“salon_id \”:400,\“tur_id \”:20 ,“oyun_aciklama \”:\“20:30 DaMeclisKültürSanatMerkezinde Sizlerle \”,\“oyun_suresi \”:\“1.5 Saat \”,\“oyun_foto \”:null},{\“oyun_turu \”: {\“oyunlars \”:[{\“oyunculars \”:[],\“oyun_id \”:160,\“oyun_adi \”:\“AdıKadın\”,\“oyun_tarihi \”:\“2017-09 -09T00:00:00 \ “\ ”salon_id \“:400,\ ”tur_id \“:20,\” oyun_acik lama \“:\”20:30 DaMeclisKültürSanatMerkezinde Sizlerle \“,\”oyun_suresi \“:\”1.5 Saat \“,\”oyun_foto \“:null}],\”tur_id \“:20,\ “tur_adi \”:\“Dram \”},\“oyunculars \”:[],\“oyun_id \”:170,\“oyun_adi \”:\“KadınBirŞiir\”,\“oyun_tarihi \”:\ “2018-03-08T00:00:00”,\“salon_id \”:400,\“tur_id \”:20,\“oyun_aciklama \”:\“8MartDünyaKadınlarGünündekadındaiiyianlatılamazdı.. \” ,“oyun_suresi \”:\“1 Saat \”,\“oyun_foto \”:null},{\“oyun_turu \”:{\“oyunlars \”:[],\“tur_id \”:10,\“ tur_adi \ “:\” Komedi \ “},\” oyunculars \ “:[{\” oyuncu_id \ “:1,\” oyuncu_adi \ “:\” 穆拉特\”,\ “oyuncu_soyadi \”:\ “耶尔马兹\” ,“oyun_id \”:180,\“oyuncu_foto \”:null}],\“oyun_id \”:180,\“oyun_adi \”:\“EksikBirŞeyMiVar?\”,\“oyun_tarihi \”: \“2018-05-17T00:00:00 \”,\“salon_id \”:400,\“tur_id \”:10,\“oyun_aciklama \”:\“O gemibirgüngelecek!\”,\“oyun_suresi \“:\”2 Saat \“,\”oyun_foto \“:null}],\”salon_id \“:400,\”salon_adi \“:\”MeclisKültürSanatMerkezi \“,”salon_adresi“:\ “GeneralŞükrüKanatlıMahallesi,CumhuriyetAlanıNo:2,31030 Anta kya / Hatay \“,\”salon_aciklama \“:\”MeclisKültürSanatMerkezi \“,\”salon_telno \“:\”03262156000 \“},{\”oyunlars \“:[],\”salon_id \“: 500,“salon_adi”:“AmfiTiyatroSümerler”,“salon_adresi”:“SümerlerMahallesi,10。Sk。 No:14,31160 Antakya / Hatay \“,\”salon_aciklama \“:\”AmfiTiyatroSümerler\“,\”salon_telno \“:null}]”
更新
答案 0 :(得分:0)
您的JSON无效,因为它以"
开头和结尾。
这不是有效的JSON。
您需要验证JSON的生成位置,并确保它不会将"
放在开头和结尾。