2012-10-24 39 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