2012-10-24 169 views
0

我想解析一些使用Json.NET的json。 JSON的要麼返回一個數組或一個錯誤:解析json和處理錯誤響應

{ 
    "error": "Invalid category" 
} 

或者:

[ 
    { 
     "category_id": "23", 
     "product_name": "Movie1" 
    }, 
    { 
     "category_id": "23", 
     "product_name": "Movie2" 
    } 
] 

我怎麼會去,如果存在錯誤檢查和顯示的信息?我嘗試過使用JObject.Parse,但是這會引發「當前JsonReader項目不是對象」的異常,因爲它在沒有錯誤時返回一個數組。

+0

您使用REST服務? –

回答

0

在你的情況,我會把正確的解析在嘗試捕捉,並在catch塊這樣的解析錯誤:

try{ 
    JObject.Parse... // try to parse your array 
}catch(Exception e){ 
    JObject.Parse... // try to parse your error 
} 

所以,如果它不能解析數組列表,它會嘗試解析字符串作爲abject(不知道如何調用JObject方法,但它可能類似於JObject.Parse<MyObject>("string"))。

+0

謝謝。我設法讓api改變爲始終返回解決此問題的對象。 – user1573007