当前位置: 首页 > 面试题库 >

从Json字符串中提取数据

孔正文
2023-03-14
问题内容

我有一个包含Json的字符串。看起来像这样:

"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"
}

我正在尝试保留“ img_url”。我已经安装了Json.NET,并且在这里发现了类似的问题。

例如这样的事情:

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");

在我来说,我改变("People[0].Name")("img_url")("img_url[0])etc..no运气

现在这是我的代码:

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;
    }
}

在提取值之前,是否必须对字符串做一些事情?谢谢!


问题答案:

img_url不是根对象的属性-它是data对象的属性:

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

另外的选择:

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


 类似资料:
  • 我正在以JSON字符串的形式从数据库中获取数据: 如何从给定的JSON字符串中提取公司名称?

  • 问题内容: 我想从包含数字和字母的字符串中提取数字: 我想在这里获取号码或任何其他号码。 问题答案:

  • 问题内容: 我正在使用select2中的multiselect元素来输入多个“标签”。当我想从元素中获取值时,我会得到如下信息(对于我在框中输入的tag1和tag2): 如何从数组中的文本中获取结果,如下所示: 而我该如何逆转这一过程呢? 问题答案: 试试这个简单的迭代。

  • 问题内容: 我在JavaScript中有一个字符串,例如“#box2”,我只想从中获得“ 2”。 尝试过: 它仍然在警报中返回#box2,我该如何使其正常工作? 它需要容纳末尾附加的任何长度的数字。 问题答案: 对于此特定示例, 在一般情况下: 由于这个答案由于某种原因而受到欢迎,因此有一个好处:正则表达式生成器。

  • 我有以下字符串 从上面,我需要提取下面的文字 第一个数字和文本之间总是有一个空格,所以2129和This is page1之间有一个空格。有时第一个数字被省略,就像2129不见了。文本和下一个数字之间总是有一个空格,所以在This is a Page1和6754001之间有一个空格,有时可能有两个空格。我只需要提取这些线这些线总是从空格开始,所以它可以 它们的后面总是有一个空格,有时是一个空格,有

  • 问题内容: 我有一个字符串,我想提取字符串中的(唯一)数字序列。 示例:helloThisIsA1234Sample。我想要1234 假设数字序列在字符串中只会出现一次,但不会出现在同一位置。 (对于那些会问的人,我有一个服务器名称,需要在其中提取一个特定的数字) 我想使用Apache commomns中的StringUtils类。 谢谢! 问题答案: 使用此代码号仅包含所需的输出。