【问题标题】:JSON in PHP catch in C#PHP 中的 JSON 在 C# 中捕获
【发布时间】:2011-12-07 19:59:31
【问题描述】:

我在 PHP 中生成一个 JSON 字符串,并在 .NET Windows 窗体应用程序中使用 httpWebRequest 捕获它

一切正常,但我想使用 json.net 库将该字符串转换回对象(或数组)。

JsonSerializer serializer = new JsonSerializer();
object result = JsonConvert.DeserializeObject(responseFromServer);

如何使用该对象从 JSON 字符串中获取变量?

我整天都在解决这个问题,但找不到从 C# 中的 JSON 字符串中获取所有值的方法

感谢所有帮助

【问题讨论】:

    标签: c# php json json.net


    【解决方案1】:

    如果您在代码中创建与 JSON 对象匹配的 struct,则可以使用 Json.NET library 中的 JsonConvert.DeserializeObject<T>(String)。它非常易于使用,并且几乎适用于任何 .NET 版本。

    您也可以使用不需要第三方库的 DataContracts。使用 DataContracts,您需要包含一些中间步骤和代码,但这里有一个非常详细的解释:Serialization with DataContracts

    这是一个关于 SO 的问题的链接,该问题涉及使用 DataContracts 进行 Json 序列化:SO Question

    【讨论】:

    • 我想我只是用通用的 jsonConvert.DeserializeObject(json);
    • 我现在在获取数据库列表时遇到了问题。如果我在 PHP 中说“从公司中选择名称,id”,它会返回正确的 json 字符串,但是如何在 C# 中捕获所有这些数组?
    • 什么是Json字符串的例子?
    • [{"name":"Electro Vergaerde","companyId":"1"},{"name":"Computers De Waele","companyId":"3"},{" name":"PC shop Maenhout","companyId":"4"},{"name":"Electro Pluis","companyId":"5"},{"name":"test","companyId": "111"}] 是所有公司,每个公司都有一个包含名称和 ID 的数组。在 C# 中,我有一个类 Companies,它包含两个字段,名称和 ID。当我只想赶上一家公司,但在另一个班级时,我也是这样做的。
    • 我是个混蛋:我在回答我自己的问题:List result = JsonConvert.DeserializeObject>(text);看来我要摆脱它了。我第一次使用 JSON
    【解决方案2】:

    如果您使用的是 .NET 4.0,则可以使用 dynamic 以及 JavaScriptConverter 类到 achieve this

    【讨论】:

      猜你喜欢
      • 2014-07-20
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 1970-01-01
      • 2011-05-12
      • 2011-01-06
      相关资源
      最近更新 更多