草庐IT

关于c#:从JsonArray中提取JsonObject

codeneng 2023-03-28 原文

Extracting JsonObject from JsonArray

我在从 Arry 中提取 JasonObject 时遇到问题,其中包含一些没有名称的对象。我已经通过批量请求表单 graph.facebook.

获得了数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[
    {
   "code":200,
   "headers":[{...}],
   "body":"{
        "
id":"255572697884115_1",
        "
from":{
            "
name":"xyzk",
            "
id":"59788447049"},
        "
message":"Hey",
        "
created_time":"2011-11-04T21:32:50+0000"}"},
    {
   "code":200,
   "headers":[{...}],
   "body":"{
        "
id":"255572697884115_2",
        "
from":{
             "
name":"xyzk",
             "
id":"59788447049"},
        "
message":":P",
        "
created_time":"2012-01-03T21:05:59+0000"}"}
]

现在我必须阅读包含对象的值"消息",但我不知道如何访问数组中的对象。谁能帮帮我?

我想使用 System.Json,另外还有 Newtonsoft.Json.

在 Java 中,GetJsonObject() 很容易使用,但我怎样才能成功使用 VSC#?有一个方法 JsonValueLinqExtensions.ToJsonObject 但我不知道如何使用。 sb可以举个例子吗?

到目前为止,谢谢你,

多米尼克

  • 检查以下链接,他们可能会对您有所帮助。 stackoverflow.com/questions/2859753/… stackoverflow.com/questions/4611031/…


您可以使用 JavaScriptSerializer 对象例如

将 JSON 解析为 dynamic

1
2
3
4
5
6
var serializer = new JavaScriptSerializer();  
var result = serializer.Deserialize<dynamic>(json);
foreach (var item in result)
{
    Console.WriteLine(item["body"]["message"]);
}

  • 谢谢您的回答。你的建议很好,但它不起作用。转换为动态是可以的,但我可以访问正文。编译器说好的,但我在 foreach 行中得到异常"对象引用未设置为对象实例"......你有什么想法吗?
  • 对不起,例外是 System.Collectios.Generic.Dictionary<string,object> 不包含 body 的定义
  • {>。这些引号必须删除,我按照以下方式进行:动态结果=JsonArray.Load(s);string st = item.body;动态结果2 = JsonObject.Parse(st);","link":"https://stackoverflow.com/questions/12302374/extracting-jsonobject-from-jsonarray/12302444#comment16524135_12302444","body":"嘿詹姆斯,谢谢你的回复。问题是正文由引号打开:<"body":"{>。这些引号必须删除,我按照以下方式进行:动态结果=JsonArray.Load(s);string st = item.body;动态结果2 = JsonObject.Parse(st);
  • @DominicFrank 提供的代码将起作用。我假设当您解析为 dynamic 对象时,您可以像访问属性一样访问它。但是,如果您通过名称访问它,它就可以正常工作。另一种解决方案是实际创建一个代表每个"项目"的类,并将其直接解析为可以为您提供类型安全的类,例如项目.正文.消息。但是,您认为对您来说是更好的解决方案。

有关关于c#:从JsonArray中提取JsonObject的更多相关文章

  1. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  2. C# 到 Ruby sha1 base64 编码 - 2

    我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

  3. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  4. ruby-on-rails - Rails - 从命名路由中提取 HTTP 动词 - 2

    Rails中有没有一种方法可以提取与路由关联的HTTP动词?例如,给定这样的路线:将“users”匹配到:“users#show”,通过:[:get,:post]我能实现这样的目标吗?users_path.respond_to?(:get)(显然#respond_to不是正确的方法)我最接近的是通过执行以下操作,但它似乎并不令人满意。Rails.application.routes.routes.named_routes["users"].constraints[:request_method]#=>/^GET$/对于上下文,我有一个设置cookie然后执行redirect_to:ba

  5. ruby-on-rails - Ruby - 如何从 ruby​​ 上的 .pfx 文件中提取公钥、rsa 私钥和 CA key - 2

    我有一个.pfx格式的证书,我需要使用ruby​​提取公共(public)、私有(private)和CA证书。使用shell我可以这样做:#ExtractPublicKey(askforpassword)opensslpkcs12-infile.pfx-outfile_public.pem-clcerts-nokeys#ExtractCertificateAuthorityKey(askforpassword)opensslpkcs12-infile.pfx-outfile_ca.pem-cacerts-nokeys#ExtractPrivateKey(askforpassword)o

  6. ruby - 如何在ruby中提取方括号内的内容 - 2

    我正在尝试提取方括号内的内容。到目前为止,我一直在使用它,它有效,但我想知道我是否可以直接在正则表达式中使用某些东西,而不是使用这个删除功能。a="Thisissuchagreatday[coolawesome]"a[/\[.*?\]/].delete('[]')#=>"coolawesome" 最佳答案 差不多。a="Thisissuchagreatday[coolawesome]"a[/\[(.*?)\]/,1]#=>"coolawesome"a[/(?"coolawesome"第一个依赖于提取组而不是完全匹配;第二个利用前瞻和

  7. ruby-on-rails - 关于 Ruby 的一般问题 - 2

    我在我的rails应用程序中安装了来自github.com的acts_as_versioned插件,但有一段代码我不完全理解,我希望有人能帮我解决这个问题class_eval我知道block内的方法(或任何它是什么)被定义为类内的实例方法,但我在插件的任何地方都找不到定义为常量的CLASS_METHODS,而且我也不确定是什么here,并且有问题的代码从lib/acts_as_versioned.rb的第199行开始。如果有人愿意告诉我这里的内幕,我将不胜感激。谢谢-C 最佳答案 这是一个异端。http://en.wikipedia

  8. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

  9. 用于从 Open3.popen3 标准输出中提取值的正则表达式 - 2

    如何获取外部命令的输出并从中提取值?我有这样的东西:stdin,stdout,stderr,wait_thr=Open3.popen3("#{path}/foobar",configfile)if/exit0/=~wait_thr.value.to_srunlog.puts("Foobarexitednormally.\n")puts"Testcompleted."someoutputvalue=stdout.read("TX.*\s+(\d+)\s+")puts"Outputvalue:"+someoutputvalueend我没有在标准输出上使用正确的方法,因为Ruby告诉我它不能

  10. ruby - 关于 Ruby 中 Dir[] 和 File.join() 的混淆 - 2

    我在Ruby中遇到了一个关于Dir[]和File.join()的简单程序,blobs_dir='/path/to/dir'Dir[File.join(blobs_dir,"**","*")].eachdo|file|FileUtils.rm_rf(file)ifFile.symlink?(file)我有两个困惑:首先,File.join(@blobs_dir,"**","*")中的第二个和第三个参数是什么意思?其次,Dir[]在Ruby中有什么用?我只知道它等价于Dir.glob(),但是,我对Dir.glob()确实不是很清楚。 最佳答案

随机推荐