Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
200 views
in Technique[技术] by (71.8m points)

c# - Extract data from Json string

I got a string containing Json. It looks like this:

"status_code":200,
"status_txt":"OK",
"data":
{
   "img_name":"D9Y3z.png",
   "img_url":"http://s1.uploads.im/D9Y3z.png",
   "img_view":"http://uploads.im/D9Y3z.png",
   "img_width":"167",
   "img_height":"288",
   "img_attr":"width="167" height="288"",
   "img_size":"36.1 KB",
   "img_bytes":36981,
   "thumb_url":"http://s1.uploads.im/t/D9Y3z.png",
   "thumb_width":360,
   "thumb_height":360,
   "source":"http://www.google.com/images/srpr/nav_logo66.png",
   "resized":"0",
   "delete_key":"df149b075ab68c38"
}

I am trying to get a hold of the "img_url". I have Json.NET installed and I′ve found similar questions here..

for example something like this:

JObject o = JObject.Parse("{'People':[{'Name':'Jeff'},{'Name':'Joe'}]}");

// get name token of first person and convert to a string
string name = (string)o.SelectToken("People[0].Name");

In my case I changed ("People[0].Name") to ("img_url"),("img_url[0]) etc..no luck

This is my code now:

public string tempJson { get; set; }
public ActionResult SaveUploadedFile(string test)
{
    using (WebResponse wrs = wrq.GetResponse())
    using (Stream stream = wrs.GetResponseStream())
    using (StreamReader reader = new StreamReader(stream))
    {
        string json = reader.ReadToEnd();
        tempJson = json;
    }
}

Do I have to do something with the string before I can extract the value? Thanks!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

img_url is not a property of root object - it's a property of data object:

var obj = JObject.Parse(json);
var url = (string)obj["data"]["img_url"]; // http://s1.uploads.im/D9Y3z.png

Another option:

var url = (string)obj.SelectToken("data.img_url");

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...