繁体   English   中英

如何将纯文本json数据转换为字符串?

[英]How to turn plain text json data into string?

我试图模拟一些测试数据来检查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#中使用多行字符串,您还需要在开头添加@符号,如此答案https中所示: //stackoverflow.com/a/1100265/2603735

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

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

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

像这样使用它:

  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: [] 
    }
}
}"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM