[英]How can i parse JSON string in c# Get error Cannot deserialize the current JSON object (e.g. {“name”:“value”})
[英]How do I parse Json with an invalid character for a field name? e.g. { “file/folder”: “/Shared/Salesforce/asdf.txt” } with Newtonsoft?
我從Web服務收到以下JSON。 如何在Netwtonsoft中解析以下JSON?
{ "file/folder": "/Shared/Salesforce/asdf.txt" }
^^^^^^^^^^
^^^^^^^^^^
^^^^^^^^^^---that is my problem
請注意,字段名稱帶有正斜杠,當用作字段名稱時,對於C#無效。 (Newtownsoft在JSON名稱和C#字段之間進行自動映射)
我的代碼是
JsonSerializerSettings set = new JsonSerializerSettings();
List<UserAudit> usrs = JsonConvert.DeserializeObject<List<UserAudit>>(statusResult );
foreach (var item in usrs)
{
Console.WriteLine(item.username + " " + item.ip_address);
}
請注意,NewtownSoft的所有需求如何與C#中的Javascript對象具有相同的名稱。 它處理所有轉換。
public class UserAudit
{
public string username;
public string filefolder; // <----- HOW DO I SET THIS VARIABLE? "file/folder" is invalid
public string transaction;
public string access;
public string time;
}
附加研究
我查看了JsonConvert.DeserializeObject<List<UserAudit>>(statusResult);
並且沒有看到直接重命名或重新格式化數據的直接方法。我查看了JsonSerializerSettings和JsonConverters。
您想要使用JSON屬性來指定要映射到模型的屬性的名稱。
public class UserAudit
{
[JsonProperty("username")]
public string UserName { get; set; }
[JsonProperty("file/folder")]
public string FileFolder { get; set; }
[JsonProperty("transaction")]
public string Transaction { get; set; }
[JsonProperty("access")]
public string Access { get; set; }
[JsonProperty("time")]
public string Time { get; set; }
}
大多數序列化程序通常會尋找屬性來定義如何序列化/反序列化。
從此更改它。
"/Shared/Salesforce/asdf.txt"
對此
@"/Shared/Salesforce/asdf.txt"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.