Son birkaç gün içinde bir JSON yanıtı ve C# nesnesinin nasıl serileştirileceği üzerine araştırma yapıyorum. JSON geçerlidir, ancak dönüştürmek için herhangi bir JSON C# dönüştürücüsü alamıyorum. Bu örnek için çalışan Stackoverflow'ta da bir yanıt bulamıyorum. JSON Tepki geçerli: Benim muayene itibarenFarklı veri türleri içeren bir JSON dizisinin tek bir nesneye nasıl dönüştürüleceği
[
{
"SEX": "Male",
"BREED": "Opifex",
"PVPRATING": 1301,
"NAME": "Kilmanagh",
"FIRSTNAME": "Big",
"PVPTITLE": "Freshman",
"LASTNAME": "Kahuna",
"CHAR_DIMENSION": 5,
"ALIENLEVEL": 30,
"RANK_name": "Vindicator",
"HEADID": 40281,
"PROFNAME": "Guru",
"LEVELX": 220,
"PROF": "Martial Artist",
"CHAR_INSTANCE": 12734,
"SIDE": "Omni"
},
{
"ORG_DIMENSION": 5,
"RANK_TITLE": "President",
"ORG_INSTANCE": 9911,
"NAME": "Elements of Destruction",
"RANK": 0
},
"2016/04/06 08:37:26"
]
iki nesneleri ve bir dize içeren bir dizidir. Ben bir nesneye dönüştürmek girişimi için aşağıdaki kullandık: bir hata alıyorum
resultArray = JsonConvert.DeserializeObject<List<JsonWhoisResult>>(data);
and
result = JsonConvert.DeserializeObject<JsonWhoisResult>(data);
Ya yolu:
Error converting value ...(snip)... [ConsoleApplication6.JsonWhoisResult]'. Path '', line 1, position 536.`
Ben nesne yanlış olup olmadığını bilmek ya eğer yok ben Bu JSON biçimi için yanlış kod kullanıyorum. Kullanıyorum:
public class JsonWhoisResult
{
public stats stats { get; set; }
public header header { get; set; }
public string datetime { get; set; }
}
public class header
{
public int ORG_DIMENSION { get; set; }
public string RANK_TITLE { get; set; }
public int ORG_INSTANCE { get; set; }
public string NAME { get; set; }
public int RANK { get; set; }
}
public class stats
{
public string SEX { get; set; }
public string BREED { get; set; }
public int PVPRATING { get; set; }
public string NAME { get; set; }
public string FIRSTNAME { get; set; }
public string PVPTITLE { get; set; }
public string LASTNAME { get; set; }
public int CHAR_DIMENSION { get; set; }
public int ALIENLEVEL { get; set; }
public string RANK_name { get; set; }
public int HEADID { get; set; }
public string PROFNAME { get; set; }
public int LEVELX { get; set; }
public string PROF { get; set; }
public int CHAR_INSTANCE { get; set; }
public string SIDE { get; set; }
}
Herhangi bir çözüm varsa, bunu gerçekten takdir ediyorum. Bu tarz bir stili kullanmam için birkaç tane daha var. Eğer bir çözüm bulabilirsem, onu diğerlerine uygulayabilmem gerekir.
Hızlı yanıt için teşekkürler! Sonuç: Ek bilgi: JRrayer'dan JArray okunurken hata oluştu. Geçerli JsonReader öğesi bir dizi değil: String. Yol '', satır 1, pozisyon 536. Bu JSON biraz alışılmışın dışında ve beni duvardan kaldırıyor. –
Kontrol edilmesi gerekenler: (1) JSON’unuz soruda olduğu gibi mi yoksa başka bir nesneye mi eklenmiş? İkincisi, dönüştürücü telafi etmek için değiştirilmelidir. (2) DeserializeObject'i tam olarak benim cevabımda gösterildiği gibi mi çağırıyorsunuz? Bu dönüştürücünün çalışması gerektiğini göstermek için bir keman ekledim. Bunu kodunuza göre kontrol edin. –
Brain, JSON aşağıdaki adreslerden gelir: http://people.anarchy-online.com/character/bio/d/5/name/Kilmanagh/bio.xml?data_type=json. Tam JSON'u yapıştırdım. Dotnetfiddle'ın bir çekicilik gibi çalışır. JSON'u indirip JsonConvert.ToString'i kullanarak webclient kullanıyorum. Belki de bu fark yaratıyordur. –