当前位置: 首页 > 知识库问答 >
问题:

Json反序列化C#

呼延修然
2023-03-14

我想解析这个json文件。

{“特征”:[{“类型”:“特征”,“几何”:“{“类型”:“多边形”,“坐标”:[[26.4217861898109,40.127607984644],[26.4219934821323,40.1275230229872],[26.4218810759267,40.1273800013679],[26.4216801413981,40.1274730404221],[26.4217861898109,40.1276079644],]属性:{“帕塞尔诺”:“1”、“艾伦”:“340.48平方米”,“梅夫基伊”-“尼塔”,“Il:”圣安娜卡勒“,”Ilce:”梅尔凯兹“,”帕夫塔“:”16“,”玛哈勒“:”巴巴拉斯“}],”类型“:”功能集合“,”crs“:{”类型“:”名称“,”属性“{”名称“:”EPSG:4326“}”

我试试这个代码:

string fileName = file.FileName;
string json = System.IO.File.ReadAllText(fileName);
dynamic stuff = JsonConvert.DeserializeObject(json);

string s1 = Convert.ToString(stuff.features.Count);
string s2 = stuff.properties.ParselNo;
MessageBox.Show(s1);
MessageBox.Show(s2);

s1工作,但s2给出错误。我怎么才能修好它?

我想这样做:

Coordinates[] coordinates = [(26.xx, 40.xx), (26.xx,40.xx) ... ]
ParselNo = 1
Alan = 340.48
Nitelik = Arsa
Ada = 698
İl = Çanakkale
İlçe = Merkez
Pafta = 16
dat_name = EPSG:4326

我能做什么?

共有3个答案

习洲
2023-03-14

我试试这个:

 string s2 = stuff.features.properties.ParselNo;
 MessageBox.Show(s2);

给出这个错误:错误。。。

谢涵煦
2023-03-14

根据json你提供的功能是List

stuff.features[0].properties.ParselNo

我使用了功能[0],因为它将从列表和功能中获取第一个功能。Count将返回您可以使用的列表中功能的数量http://json2csharp.com/ 检查您的json

编辑

关于你的第二个问题,应该是这样的

List<List<double>> s2 =stuff.features[0].geometry.coordinates[0].ToObject<List<List<double>>>();
var firstcordinates = s2[0];

它将从数组中获取坐标,并且s2[0]将从list中获取第一个坐标

安泰平
2023-03-14

我相信,如果您正确地将json格式化如下

 stuff.features.properties.ParselNo;

应该得到解析1否

  {  
   "features":[  
      {  
         "type":"Feature",
         "geometry":{  
            "type":"Polygon",
            "coordinates":[  
               [  
                  [  
                     26.4217861898109,
                     40.127607984644
                  ],
                  [  
                     26.4219934821323,
                     40.1275230229872
                  ],
                  [  
                     26.4218810759267,
                     40.1273800013679
                  ],
                  [  
                     26.4216801413981,
                     40.1274730404221
                  ],
                  [  
                     26.4217861898109,
                     40.127607984644
                  ]
               ]
            ]
         },
         "properties":{  
            "ParselNo":"1",
            "Alan":"340.48 m2",
            "Mevkii":"-",
            "Nitelik":"Arsa",
            "Ada":"698",
            "Il":"Çanakkale",
            "Ilce":"Merkez",
            "Pafta":"16",
            "Mahalle":"Barbaros"
         }
      }
   ],
   "type":"FeatureCollection",
   "crs":{  
      "type":"name",
      "properties":{  
         "name":"EPSG:4326"
      }
   }
}
 类似资料:
  • 问题内容: 我有以下JSON字符串要反序列化: 我正在使用DataContractJsonSerializer方法。 它由项目数组组成,我找不到使用VB.Net可以反序列化此结构的示例。我具有以下Application类来存储此信息: 问题答案: 我建议你使用过。原因如下: 更快 比简单的序列化需要更多的代码。 您无需将and 属性与 使用此数据类 并使用它反序列化您的: 如果仍要使用,则可以使用

  • 我有一个简单的问题,假设我有这个json 以这种方式映射: 我想知道是否可以通过使用一些自定义setter/注释或其他东西在内部对象中保存一个外部字段: PS:由于json的复杂性,使用自定义反序列化是我最后的选择

  • 我的JSON如下: 我找到了Newtonsoft JSON。NET为C#反序列化库。我试着使用它如下: 如何访问对象以获取所有“类型”数据?我尝试了一个循环,但它不起作用,因为对象没有枚举器。

  • 我一直在做一个项目,需要通过JSON文件保存和加载数据。此 JSON 文件包含其他对象的各种列表。但是,当我继续反序列化文件时,会发生这种情况: 系统。NotSupportedException:不支持反序列化没有无参数构造函数、单一参数化构造函数或用“JsonConstructorAttribute”批注的参数化构造函数的类型。 处理反序列化的代码如下: 我想反序列化的类 JSON转换器 Sav

  • 问题内容: 既然没有,可以使用什么本机实现来处理呢? 我注意到了,并且可以使用此格式将数据格式化为JSON,但是如何反序列化? 或者,也许我缺少某些依赖项? 问题答案: 您可以使用,它的依赖项是的依赖项。因此,您无需在project.json中添加依赖项。 请注意,使用WebAPI控制器,您无需处理JSON。 更新ASP.Net Core 3.0 Json.NET已从ASP.NET Core 3.

  • 问题内容: 我正在使用大猩猩 websocket,并且正在计划使用json进行序列化/反序列化。 假设我有这样的结构来接收传入的消息: 和 大猩猩提供接收传入的消息。传入的消息可以是Foo或Bar,但是我不能使用和收听其他消息,这很混乱。我想要像javascript 这样的东西。如果接收到Foo,则如何处理传入消息,然后将其存储到结构中;如果接收到Bar,则将其存储到结构中? 我正在解决方案正在使