【问题标题】:How to turn plain text json data into string?如何将纯文本json数据转换为字符串?
【发布时间】:2014-12-16 02:09:52
【问题描述】:

我正在尝试模拟一些测试数据以检查 json 字符串是否正确反序列化为对象。

我有一些 660 行长的 json 数据,所以我只包含了一部分

{
"DataA": "string",
"DataB": "datetime",
"DataC": {
    "DataC1": "datetime",
    "DataC2": "datetime",
    "DataC3": "datetime",
    "DataC4": int,
    "DataC5": int,
    "DataC6": "string",
    "DataC7": int,
    "DataC8": "object"
},
"DataD": {
    "DataD1": decimal,
    "DataD2": decimal,
    "DataD3": "string",
    "DataD4": int,
    "DataD5": decimal,
    "DataD6": "string",
    "DataD7": {
        "DataD7i": null,
        "DataD7ii": [

我已经创建了相应的类,但目前正在尝试测试它们。但是我无法将此 json 数据转换为字符串,因为双引号关闭了字符串。我也尝试过使用 ecsapes,但无济于事。

string testjson = "{
"DataA": "string",
"DataB": "datetime",
"DataC": {
    "DataC1": "datetime",
    "DataC2": "datetime",
    "DataC3": "datetime",
    "DataC4": int,
    "DataC5": int,
    "DataC6": "string",
    "DataC7": int,
    "DataC8": "object"
},
"DataD": {
    "DataD1": decimal,
    "DataD2": decimal,
    "DataD3": "string",
    "DataD4": int,
    "DataD5": decimal,
    "DataD6": "string",
    "DataD7": {
        "DataD7i": null,
        "DataD7ii": ["

我想打电话

            ObjectA objectblah= JsonConvert.DeserializeObject<ObjectA>(output);

但无法将 json 转换为字符串。我知道这是一个微不足道的问题,但我是新手并且被困在这个问题上。任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: c# string serialization json.net json-deserialization


    【解决方案1】:

    部分问题似乎是使用了双引号,可以使用反斜杠 \ 进行转义,但是要在 C# 中使用多行字符串,您还需要在开头附加 @ 符号就像这个答案中所示https://stackoverflow.com/a/1100265/2603735

    【讨论】:

      【解决方案2】:

      在我的单元测试项目中,每当我有“大量”文本时,我都会将该内容放入单独的文本文件中。那么你有两个选择:

      1. 将该文本文件设为嵌入式资源,您可以通过 Assembly.GetExecutingAssembly().GetManifestResourceStream(...) 加载该资源。
      2. 或者将文件的项目属性“复制到输出目录”设置为“如果较新”。然后通过 File.ReadAllText 阅读它。

      将其保存在单独的文件中使编辑/维护变得更加容易。

      【讨论】:

        【解决方案3】:

        像这样使用它:

          string testjson = @"
        {
        DataA: string,
        DataB: datetime,
        DataC: {
            DataC1: datetime,
            DataC2: datetime,
            DataC3: datetime,
            DataC4: int,
            DataC5: int,
            DataC6: string,
            DataC7: int,
            DataC8: object
        },
        DataD: {
            DataD1: decimal,
            DataD2: decimal,
            DataD3: string,
            DataD4: int,
            DataD5: decimal,
            DataD6: string,
            DataD7: {
                DataD7i: null,
                DataD7ii: [] 
            }
        }
        }"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-12-22
          • 1970-01-01
          • 1970-01-01
          • 2021-09-25
          • 1970-01-01
          • 1970-01-01
          • 2015-12-03
          相关资源
          最近更新 更多