开发者

JSON parsing using JSON.net

开发者 https://www.devze.com 2023-02-11 03:24 出处:网络
I am accessing the facebook api and using the json.net library (newtonsoft.json.net) I declare a Jobject to parse the content and look for the specific elements and get their values. Everything works

I am accessing the facebook api and using the json.net library (newtonsoft.json.net) I declare a Jobject to parse the content and look for the specific elements and get their values. Everything works fine for the first few but then I get this unexplained nullexception error " (Object reference not set to an instance of an object)

Now I took a look at the declaration but cannot see how to change it. Any help appreciated:

Dim jobj as JObject = JObject.Parse(responseData)
message = jobj("message").tostring

The error occurs at the last line above.I check to see if message is null and then look for the next desired 开发者_运维百科field as follows

catch exception..
  dim jobj2 as JObject = JObject.parse(responseData)
  description = jobj2("description").tostring

JSON responsedata:

{
   "id": "5281959998_126883980715630",
   "from": {
   "name": "The New York Times",
   "category": "Company",
   "id": "5281959998"
},
  "picture": "http://external.ak.fbcdn.net  /safe_image.php?d=e207958ca7563bff0cdccf9631dfe488&w=
90&h=90&url=http\u00253A\u00252F\u00252Fgraphics8.nytimes.com\u00252Fimages\u00252F2011\u00252F02\u00252F04\u00252Fbusiness\u00252FMadoff\u00252FMadoff-thumbStandard.jpg",
  "link": "http://nyti.ms/hirbn0",
   "name": "JPMorgan Said to Have Doubted Madoff Long Before His Scheme Was Revealed",
   "caption": "nyti.ms",
   "description": "Newly unsealed court documents show that bank
   executives were suspicious of Bernard Madoff\u2019s accounts 
   and steered clients   away from him but did not alert regulators.",
   "icon": "http://static.ak.fbcdn.net/rsrc.php/yD/r/aS8ecmYRys0.gif",
   "type": "link",
   "created_time": "2011-02-04T16:09:03+0000",
   "updated_time": "2011-02-06T20:09:51+0000",
  "likes": {
  "data": [
     {
        "name": "Siege Ind.",
        "category": "Product/service",
        "id": "152646224787462"
     },
     {
        "name": "Lindsey Souter",
        "id": "100000466998283"
     },

This is one example where "message" does not appear in the first few lines but appears later. So what I do is look for position of message and description and which ever is first go and get that and if I get an error or the fields do not return anything, I try and parse by regex and even that is not working right.


Well, presumably jobj("message") has returned Nothing, which will happen if jobj doesn't have a message property. If you think this is incorrect, please post a short but complete piece of JSON to help us investigate.

(Is there any reason why you're declaring message and assigning it a value on the second line, only to overwrite that value on the third line?)

0

精彩评论

暂无评论...
验证码 换一张
取 消