读取 Json 序列化 c#

2023-11-29

我正在尝试从这个 json 文本中获取 id。我不知道如何获取它不允许我创建 json 对象。我尝试反序列化它这样做:

public async Task<List<T>> GetIdAsync(string username)
{
    var httpClient = new HttpClient();

    var json = await httpClient.GetStringAsync(WebServiceURL);

    var  Id  = JsonConvert.DeserializeObject<List<T>>(json);

   return Id;
}

但我在反序列化期间收到此错误

未处理的异常:

Newtonsoft.Json.JsonReaderException:遇到意外字符 解析值时:{.路径 '',第 1 行,位置 2

这是 json 文本:

json    "[{\"Id\":1,\"FirstName\":\"a\",\"LastName\":\"b\",\"UserName\":\"user\",\"Email\":\"[email protected]\",\"Password\":\"poSsUrscOuXL+E5qxXsCsA==\",\"CompanyName\":\"c\",\"Salt\":\"n3ZLSwU9L1g=\",\"Address\":{\"Country\":\"c\",\"Province\":\"p\",\"City\":\"c\",\"PostalCode\":\"p\",\"Street\":\"street\",\"StreetNumber\":\"123\"},\"Telephone\":{\"PersonalPhoneNumber\":\"413414\",\"BusinessPhoneNumber\":\"134134\"},\"Location\":{\"Lat\":45.6025839,\"Lng\":-97.8489959}}]"   string

所提供 JSON 的给定值,它是一个对象数组。您可以使用动态对象来提取您想要的属性。首先将json反序列化为List<dynamic>,获取列表中的第一个对象并调用Id财产。

public async Task<int> GetIdAsync(string username) {
    var httpClient = new HttpClient();

    var json = await httpClient.GetStringAsync(WebServiceURL);

    var list  = JsonConvert.DeserializeObject<List<dynamic>>(json);

    var obj = list.FirstOrDefault();

    int Id = obj != null ? obj.Id : 0;

    return Id;
}

UPDATE:

在简单的单元测试中对其进行了测试并按预期通过。

[TestClass]
public class UnitTest6 {
    [TestMethod]
    public async Task GetIdAsyncTest() {

        var id = await GetIdAsync("");

        Assert.IsTrue(id > o);
    }

    public async Task<int> GetIdAsync(string username) {
        var httpClient = new HttpClient();
        //simple data just for the purpose of the test.
        var json = await Task.FromResult("[{\"Id\":1,\"FirstName\":\"a\"}]"); //await httpClient.GetStringAsync("");

        var list = JsonConvert.DeserializeObject<List<dynamic>>(json);

        var obj = list.FirstOrDefault();

        int Id = obj != null ? obj.Id : 0;

        return Id;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取 Json 序列化 c# 的相关文章

  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当

随机推荐

  • 无法将 macOS-arm64 的库与 macOS-arm64 的可执行文件链接

    I have some trouble with creating a build system on a Monterey M1 MacBook 到目前为止 我有一个可用的 Makefile 来构建和链接库 简化 g c所有 cpp 文件
  • Android NDK 中的 ICU 库

    我正在尝试为依赖于 ICU 库 libicuuc so 和 libicui18n so 的 C 库创建 JNI 包装器 我尝试在 NDK 标准版本和 CrystaX 版本 在 Mac OS X 机器上 中构建 ICU4C 并不断遇到如下链接
  • 从 Android Activity 调用 javascript 函数

    我在主活动中使用以下代码 其给出的函数 display 未定义 public class cordovaExample extends DroidGap Context mcontext private novel n private Se
  • Spring + Hibernate +JTA - HibernateTransactionManager 或 JTATransactionManager

    我要整合Spring and 休眠并使用JTA用于管理交易 我还想将事务处理委托给应用程序服务器 在我的例子中是 JBoss 我对 的配置有疑问事务管理器 春天的豆子 1 我们可以使用Hibernate事务管理器并设置属性hibernate
  • 设计一个仅适用于 Android 平板电脑的应用程序 [重复]

    这个问题在这里已经有答案了 假设我想构建 2 组不同的仅限平板电脑的布局 一台适用于 600dp 7 英寸平板电脑 1024x600 一台适用于 720dp 10 英寸平板电脑 1280x720 或 1280x800 据我所知 在 andr
  • 无法上传图像(HttpPostedFileBase 为 Null)

    我尝试使用图像上传器 但是当我单击浏览并选择图像然后提交表单时 HttpPostedFileBase 为空 我的实施有遗漏吗 请帮忙 View
  • 如何解决共享 Google Apps 脚本库的“此应用程序被阻止”错误?

    我正在尝试创建一个可以在 Google 表格电子表格中重复使用的 Google Apps 脚本 GAS 库 下列的这些说明 这是我到目前为止所做的 创建了一个新项目谷歌云平台 在步骤 1 中为项目启用 Google Sheets API 在
  • 用户卸载 Android 应用程序时的通知

    当用户从他 她的 Android 设备卸载我的应用程序时 有没有办法收到通知 不 您可以使用 PACKAGE REMOVED 广播接收器获取其他应用程序卸载事件 但不能获取应用程序本身卸载的事件 因为它已被删除 请参阅文档here
  • 如何更新正在运行的 EXE?

    如何用新版本替换正在运行的 EXE 你能行的this way 重命名正在运行的 EXE 将新版本复制到旧名称 当新版本启动时删除重命名的EXE 请注意 这绝对是不推荐的行为
  • Javascript 从单独的 php 脚本获取输出

    我希望 javascript 能够使用 jQuery 调用 php 脚本 它只是回显一个字符串 I think get是正确的方法 但不太确定 然后我想使用返回的字符串作为 JavaScript 变量 get 确实是可行的方法 首先 您需要
  • 如何使用 .NET 4 将自定义属性添加到 Word 文档?

    使用 NET 4 如何向文档添加自定义属性 我假设事情是这样的 WordApp an instance of Microsoft Office Interop Word Application ActiveDocument CustomDo
  • Python:Pandas Dataframe 如何将整列与标量相乘

    如何将数据帧给定列的每个元素与标量相乘 我尝试过寻找SO 但似乎找不到正确的解决方案 做类似的事情 df quantity 1 trying to multiply each row s quantity column with 1 给我一
  • 如何通过 JNDI 检索 LDAP 密码

    我可以通过 JNDI 读取 LDAP 中存储的密码 但结果是一些乱码字符 那么我该如何解密呢 下面是我的代码 public static void main String args String INITCTX com sun jndi l
  • 如何在 BASH 中将 csv 文件读入二维数组?

    如何在 BASH 中将 csv 文件读入二维数组 该脚本需要足够动态 可以获取行数和列数可变的 csv 文件 例如 如果我有一个 csv 文件 如下所示 AVERAGE STDEV MAX 17 18 19 or AVERAGE STDEV
  • 文件下载后执行页面导航并发送重定向

    我需要找到一种在生成文件下载后执行页面导航的方法 到目前为止 我已经准备好文件下载并开始工作 FileInputStream stream new FileInputStream file FacesContext fc FacesCont
  • python 正则表达式仅匹配最后一次出现

    我在为重复字符串模式实现正则表达式时遇到一些问题 gt gt gt re findall w d a b c d e f e f 我也想购买其他物品 非常感谢帮助 去除 你的模式匹配all出现次数 但该组只能捕获一次出现情况 您不能以这种方
  • 无法在自定义 SurfaceView 类之上进行绘制

    我用过示例指南创建一个名为 CameraPreview 的类 该类继承自 SurfaceView 类 并显示相机预览 我还创建了另一个名为 DrawOnTop 的自定义视图类 它直接从 View 继承 我用它来在预览顶部绘制文本和其他项目
  • 将可调用线程设为守护进程

    如何将 Callable 线程设置为守护线程 这就是我正在尝试的 我正在尝试执行一组线程 其中一个线程未完成并进入无限循环 它的作用是即使所有代码语句都被执行 程序的主线程也不会终止 之后主线程进入挂起模式 这是相同的代码片段 public
  • 使用 Swift 以编程方式在 Mapkit 中倾斜地图

    我想在启动时倾斜地图 与用户用两根手指向上或向下滚动时的操作相同 使用 Swift 可以做到这一点吗 MKMapView 类参考 http goo gl djHXPn 看着那 这camera财产 相机对象定义了地图表面上方的一个点 可以从该
  • 读取 Json 序列化 c#

    我正在尝试从这个 json 文本中获取 id 我不知道如何获取它不允许我创建 json 对象 我尝试反序列化它这样做 public async Task