2017-02-06 143 views
0

我處理我在哪裏從API獲取JSON數據的情況。然後,我試圖將這些數據映射到其相應的JSON對象定義(這是巨大的,所以我不會把它放在這裏),並且它對於單個頂級項目都很好。但是,在我檢索的字符串包含多個頂級JSON項目的情況下,我無法解析JSON數據,因爲它尚未拆分。解析JSON字符串與多個頂級項目分成多個JSON對象

我似乎無法找出分割字符串,然後解析對象的有效途徑。

的事情,我已經嘗試包括從下面的文章項目: Parse Json string in C# https://stackoverflow.com/questions/32273617/parse-json-string-into-liststringhttps://stackoverflow.com/questions/13721686/parse-this-json-string-to-string-array-c-sharp

,我使用地圖中的單個項目單個對象的代碼如下:

public void createTicketObj(string json_string) 
    { 

     //take in the json string containing the items & deserialize it. 
     var item = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(json_string); 
     //works for a single JSON item, however not for multiple records. 

    } 

如果有人可以指出我正確的方向,將不勝感激! 謝謝。

回答

1

如果你有多個記錄,你應該使用把它放在一個List<T>。嘗試使用此:

var item = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RootObject>>(json_string); 

但是,這不適用於單個項目。爲了使其工作,請檢查JSON,如果它是單個或多個記錄首先使用此:

var token = JToken.Parse(json_string); 

if (token is JArray) 
{ 
// Do something 
} 
else if (token is JObject) 
{ 
// Do something 
} 

希望它有幫助!

+0

完美的作品,非常感謝! – user3801447

+0

很高興能幫到你! :) – mindOfAi