由於有消息稱,您的目標是JObject
所以不要將其轉換爲JArray
。試試這個:
var objs = JsonConvert.DeserializeObject("{ \"PrintId\":10,\"Header\":\"header\",\"TC\":\"tc\",\"CompanyRef\":\"00000000-0000-0000-0000-000000000000\"}");
更新爲了獲得一個collection List<Print>
,你的JSON必須是一個數組。試試這個(我做你的JSON數組,並添加了第二個對象):
string json = "[{ \"PrintId\":10,\"Header\":\"header\",\"TC\":\"tc\",\"CompanyRef\":\"00000000-0000-0000-0000-000000000000\"}"
+ ",{ \"PrintId\":20,\"Header\":\"header2\",\"TC\":\"tc2\",\"CompanyRef\":\"00000000-0000-0000-0000-000000000000\"}]";
var objs = JsonConvert.DeserializeObject<List<Print>>(json);
//The loop is only for testing. Replace it with your code.
foreach(Print p in objs){
Console.WriteLine("PrintId: " + p.PrintId);
Console.WriteLine("Header: " + p.Header);
Console.WriteLine("TC: " + p.TC);
Console.WriteLine("CompanyRef: " + p.CompanyRef);
Console.WriteLine("==============================");
}
public class Print
{
public int PrintId { get; set; }
public string Header { get; set; }
public string TC { get; set; }
public string CompanyRef { get; set; }
}
這裏是一個fiddle。
答案很簡單。它不是一個數組。它是一個對象,並且您嘗試將其轉換爲數組。 –
* this * code沒有問題 - json文本是* not *數組,它是一個字典。如果你以前認爲它是有效的,那麼文本是不同的或者是演員。 –
您提供的代碼絕對*不*適用於相同的JSON。 –