【问题标题】:JSON decode steps - c# [duplicate]JSON解码步骤 - c# [重复]
【发布时间】:2016-10-15 13:46:00
【问题描述】:

我是 c# 新手,但在使用 PHP 和 Java 等 OOP 时我有很多经验。 我的 c# 代码中有一个 HTTP Web 响应,它返回一个 JSON 对象,我在网上阅读了很多文章,我看到了一些关于 JSON 解码和其他方法的微软文档,但是,我以前使用过 PHP,我知道有一个非常这样做的简单方法是:

考虑到$response 是来自网络服务的响应:

$json_string = json_decode($response,true);
$var = $json_string["test"]["country"];

我在网站上看到了一个类似的问题,它有一个答案:

dynamic response = JsonConvert.DeserializeObject(json);

Console.WriteLine("PropName:" +     response.data[1].attachment.properties[0].name);

foreach (var data in response.data)
{
    if (data.attachment != null)
    Console.WriteLine((string)data.attachment.name);
}

正如你在这里看到的,创建了一个动态对象来获取子对象(string)data.attachment.name,所以值名称是固定的,我想知道这个值是否可以是这样的字符串:

String 1="attachement";
String 2="name";
(string)responsedata.1.2;

我知道语法是错误的,并且 1 和 2 应该是动态类型。这些vapes可以像我在问题开头给出的php示例那样是字符串吗?

在c#中是否有类似且简单的代码具有相同的输出并且易于使用? 感谢您的帮助。

【问题讨论】:

标签: c# php json web-services


【解决方案1】:

您可以使用 newtonsoft 反序列化 json 对象。

string json = @"{
   'Country': 'US',
   'State': IL,
   'CreatedDate': '2016-10-14T00:00:00Z'       
 }";

DefineYourObject obj = JsonConvert.DeserializeObject<DefineYourObject>(json);    
Console.WriteLine(obj.Country);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多