当前位置:  开发笔记 > 编程语言 > 正文

Json使用c#从文本文件序列化

如何解决《Json使用c#从文本文件序列化》经验,为你挑选了1个好方法。



1> cramopy..:

您的问题是您存储数据的格式.您目前拥有的不是 json.你班上的一个json示例如下:

[
  {
    "ShortText": "ShortText9daba9d8-1e0c-4b70-9f69-016332b1b53a",
    "GeoCordinates": [
      "11b2a991-0165-4155-8207-f256d2486ddd",
      "9abd9c64-f0f2-47fb-a692-c6daae15a5bc",
      "bfd2edd5-6f37-45ae-abf9-350cb20a5f5f"
    ],
    "Images": [
      "03425202-d953-44c5-bc50-bffdd4e7f605",
      "dd6d0a5f-8e93-4793-82b7-4aba3515993c",
      "8d554f56-af65-4ef3-b06a-88d2aab647e1"
    ]
  }
]

你看到了区别?现在,当您使用所需的样本替换我的json样本的内容时,将其保存到文件中,然后您可以将其反序列化.

写完之后,我很快再次阅读你的问题我有一对问题:

你想解析你有的文本,然后将其保存为json吗?

你想把数据放在一个数组中.你在哪里有它?阵列应该在哪里?

编辑:

你的课应该是这样的:

//using System.Collections.Generic;
public class GeoCoordinates
{
    public double Longitude { get; set; }
    public double Latitude { get; set; }
}

public class POIData
{
    public string ShortText { get; set; }
    public GeoCoordinates GeoCoordinates { get; set; }
    public List Images { get; set; }
}

这导致了这个json:

[
  {
    "ShortText": "ShortText41cca2ce-b139-458e-b20c-c549ba0e0163",
    "GeoCoordinates": {
      "Longitude": 10.13333333,
      "Latitude": 54.33333333
    },
    "Images": [
      "9B9C2047.jpg",
      "CAD72F59.jpg"
    ]
  }
]

编辑2:

public GeoCoordinates GeosFromString(string path)
{
    string[] lines = File.ReadAllLines(path);
    GoeCoordinates gc = new GeoCoordinates();
    gc.Latitude = Double.Parse(lines[0].Substring(4)); // this removes 'Lat:' in front of the string
    gc.Longitude = Double.Parse(lines[1].Substring(4)); // this removes 'Lon:' in front of the string
    return gc;
}

用法:

this.GeoCoordinates = GeosFromString(startPath + @"\Latitude Longitude\" + name + ".json");

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有