小编dbc*_*dbc的帖子

在C#中使用属性反序列化XML

我无法从API调用反序列化XML响应.我的'Option'对象的属性'Description'为null.

以下是XML示例:

<vehicle found="1">
   <description>VehicleDescText</description>
   <buildDate>2000-11-20</buildDate>
   <modelYear>2001</modelYear>
   <optionList>
      <option code="UH8">OptionDesc1</option>
      <option code="UH8">OptionDesc2</option>
   </optionList>
</vehicle>
Run Code Online (Sandbox Code Playgroud)

以下是C#类的示例:

[DataContract]
[XmlRoot("vehicle")]
public class Vehicle
{
    [DataMember]
    [XmlAttribute("found")]
    public bool Found { get; set; }

    [DataMember]
    [XmlElement("description")]
    public string Description { get; set; }

    [DataMember]
    [XmlElement("buildDate")]
    public string BuildDate { get; set; }

    [DataMember]
    [XmlElement("modelYear")]
    public string ModelYear { get; set; }

    [DataMember]
    [XmlElement("optionList")]
    public List<Option> OptionList { get; set; }
}

public class Option
{
    [DataMember]
    [XmlAttribute("code")]
    public string Code { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# xml restsharp deserialization

2
推荐指数
1
解决办法
2779
查看次数

尝试通过序列化为JSON打印对象时,为什么有些成员丢失?

如何在C#中打印任意变量以便打印所有成员?

我用相同的技术找到了三个答案:

但是,当我尝试使用以下代码时,

using System;
using System.Collections.Generic;

using Newtonsoft.Json;

public static class Program
{
    public static void Main()
    {
        Test t1 = new Test(1, 2);
        {
            string json = JsonConvert.SerializeObject(t1, Formatting.Indented);
            Console.WriteLine(json);
        }
        Dump(t1);

        // Add 3 objects to a List.
        List<Test> list = new List<Test>();
        list.Add(new Test(1, 2));
        list.Add(new Test(3, 4));
        list.Add(new Test(5, 6));

        Console.WriteLine(list.ToString());
        {
            string json = JsonConvert.SerializeObject(list, Formatting.Indented);
            Console.WriteLine(json);
        }
    }

    public class Test
    {
        int A;
        int b;
        public Test(int …
Run Code Online (Sandbox Code Playgroud)

c# json json.net

2
推荐指数
1
解决办法
599
查看次数

需要帮助在c#中将数据写入json

我正在webscraping一些数据,并尝试使用c#newtonsoft.Json将抓取的数据写入json文件.

在将数据写入控制器中的Json文件时,我遇到了困难.c#中的多维数组让我很困惑.

提前致谢.

这是我尝试创建的Json文件的示例:

[
{
    "testmodule1": {
        "name": {
            "required": true,
            "options": [
                "option1",
                "option2"
            ]
        },
        "admin": {
            "required": true,
            "options": [
                "option1",
                "option2"
            ]
        },
        "path": {
            "required": true,
            "options": [
                "option1",
                "option2"
            ]
        }
    }
},
{
    "testmodule2": {
        "name": {
            "required": true,
            "options": [
                "option1",
                "option2"
            ]
        },
        "server": {
            "required": false,
            "options": [
            ]
        },
        "port": {
            "required": true,
            "options": [
                "option1",
                "option2"
            ]
        }
    }
}
]
Run Code Online (Sandbox Code Playgroud)

这些是我的课程:

    public class JsonData …
Run Code Online (Sandbox Code Playgroud)

c# asp.net arrays json web-scraping

2
推荐指数
1
解决办法
90
查看次数

使用System.Text.Json.Serialization解析json的异常

我的示例代码非常简单:

using System.Text.Json.Serialization;
using Newtonsoft.Json;

public class C {
  public C(string PracticeName) { this.PracticeName = PracticeName; }
  public string PracticeName;
}

var x = new C("1");
var json = JsonConvert.SerializeObject(x); // returns "{\"PracticeName\":\"1\"}"

var x1 = JsonConvert.DeserializeObject<C>(json); // correctly builds a C

var x2 = System.Text.Json.Serialization.JsonSerializer.Parse<C>(json);
Run Code Online (Sandbox Code Playgroud)

最后一行引发:

引发异常:System.Text.Json.dll中的“ System.NullReferenceException”对象引用未设置为对象的实例。

我究竟做错了什么 ?

(Note this is on latest .NET Core 3 preview 5 with latest System.Text.Json 4.6.0-preview6.19259.10)

Adding a parameterless constructor prevents the exception however I don't want/need a parameterless constructor and …

c# json.net .net-core .net-core-3.0 system.text.json

2
推荐指数
1
解决办法
3367
查看次数

System.Text.Json 序列化 Unicode 字符(如表情符号)的问题

我正在将应用程序从 .NET Core 2.2 升级到 .NET Core 3.0,并且新的System.Text.Json序列化程序的行为与 Newtonsoft 在 2.2 中的行为不同。在像不间断空格 (\u00A0) 或表情符号字符这样的字符上,Newtonsoft(甚至 Utf8Json)将它们序列化为它们的实际字符,而不是 Unicode 代码。

我创建了一个简单的 .NET Fiddle 来展示这一点。

var input = new Foo { Bar = "\u00A0 Test !@#$%^&*() \uD83D\uDCAF ??" };
var newtonsoft = Newtonsoft.Json.JsonConvert.SerializeObject(input);
var system = System.Text.Json.JsonSerializer.Serialize(input, new System.Text.Json.JsonSerializerOptions
    {
        Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping, 
    });
var utf8Json = Utf8Json.JsonSerializer.ToJsonString(input);

Console.WriteLine($"Original: {input.Bar} - {input.Bar.Contains('\u00A0')}"); // Original
Console.WriteLine($"Newtonsoft: {newtonsoft} - {newtonsoft.Contains('\u00A0')}"); // Works
Console.WriteLine($"System.Text.Json: {system} - {system.Contains('\u00A0')}"); // Does not work
Console.WriteLine($"Utf8Json: {utf8Json} - {utf8Json.Contains('\u00A0')}"); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net json json.net system.text.json

2
推荐指数
1
解决办法
2234
查看次数

如何使用SelectTokens查询多个字段?

如果我有一个 JSON 数组,并且想从每个对象中提取一个字段,那么这相当简单:

Data:
{ 
  "Values": [
    {
      "Name": "Bill",
      "Age": "25",
      "Address": "1234 Easy St."
    },
    {
      "Name": "Bob",
      "Age": "28",
      "Address": "1600 Pennsylvania Ave."
    },
    {
      "Name": "Joe",
      "Age": "31",
      "Address": "653 28th St NW"
    }
  ]
}

Query:
data.SelectTokens("Values[*].Name")
Run Code Online (Sandbox Code Playgroud)

这将为我提供所有名称的数组。但如果我想要多个字段怎么办?有没有办法获取包含名称和地址的对象数组?

最明显的方法是运行SelectTokens两次然后再Zip运行,但这行得通吗?两个结果数组是否保证保留原始源数据的顺序?有没有一种更简单的方法可以只用一个查询来完成它?

c# json json.net jsonpath

2
推荐指数
1
解决办法
3874
查看次数

如何使用冒号解组 xml 元素

正如代码所言,我无法在 Go 中使用冒号解组 xml 元素。

https://play.golang.org/p/zMm5IQSfS01

package main

import (
    "fmt"
    "encoding/xml"
)

type Obj struct {
    XMLName xml.Name `xml:"book"`
    AbcName string   `xml:"abc:name"`
}

func main() {
    a := []byte(`<book><abc:name>text</abc:name></book>`)
    obj := &Obj{}
    if err := xml.Unmarshal(a, obj); err != nil {
        panic(err)
    }
    fmt.Printf("%#v\n", obj)
}
Run Code Online (Sandbox Code Playgroud)

代码输出:

&main.Obj{XMLName:xml.Name{Space:"", Local:"book"}, AbcName:""}
Run Code Online (Sandbox Code Playgroud)

是否可以在 Golang 中使用冒号解组 xml 元素?如果是,怎么办?

xml xml-namespaces go

2
推荐指数
1
解决办法
1118
查看次数

文本未显示在列内第二行 -Flutter

我正在努力显示长文本,这是字符串格式的地址。它可能需要一行或两行或多行,我已经尝试了所有解决方案来完全显示文本,但每次它都会溢出。我已经使用了灵活的、可扩展的和所有文本属性,如软包装,但它不起作用。我必须在 ListTile 中显示此列。

\n
showPickedDropoffLocations() {\n    return Column(\n      crossAxisAlignment: CrossAxisAlignment\n          .start, //meant to align elements to the left - seems to be working\n      mainAxisAlignment: MainAxisAlignment.spaceBetween,\n      children: [\n        SizedBox(height: 5),\n        Row(\n            mainAxisAlignment: MainAxisAlignment.spaceAround,\n            children: const <Widget>[\n              Icon(\n                Icons.pin_drop,\n                color: Colors.pink,\n                size: 24.0,\n                \n              ),\n              Text("Pickup Location"),\n            ]),\n\n        Container(\n            height: 50,\n            \n            child: Text(pickedAddress, style: TextStyle(), softWrap: true)),\n        \n\n        Center(\n          child: Column(\n            children: [\n              Text(\'.\'),\n              Text(\'.\'),\n              Text(\'.\'),\n            \n            ],\n          ),\n        ),\n        SizedBox(height: 5),\n        Row(\n            mainAxisAlignment: MainAxisAlignment.spaceAround,\n            children: const <Widget>[\n              Icon(\n                Icons.pin_drop,\n                color: …
Run Code Online (Sandbox Code Playgroud)

text flutter

2
推荐指数
1
解决办法
1167
查看次数

忽略引号内的分隔符 CsvHelper

我正在尝试读取逗号分隔的 csv 文件,除非字段包含逗号,否则该文件在大多数情况下都不是文本限定的。一个例子是可以包含逗号的地址行。当发生这种情况时,列将在我的映射对象内分流。

AddressLine1, Email, ID
House Name, test@test.net, 5
"House Name, 20", test@test.net,5
Run Code Online (Sandbox Code Playgroud)

忽略不好的结果,这会导致对象

[0] AddressLine1: House Name, Email: test@test.net, ID: 5
[1] AddressLine1: House Name, Email: 20, ID: test@test.net
Run Code Online (Sandbox Code Playgroud)

我尝试了各种配置,包括修改模式和转义字符。

var config = new CsvConfiguration(CultureInfo.InvariantCulture)
{
HasHeaderRecord = true,
  Delimiter = ",",                    
  HeaderValidated = null,
  Mode = CsvMode.Escape,
  Escape = '\\'
};
Run Code Online (Sandbox Code Playgroud)

有人可以帮我指出正确的方向吗?

c# csv csvhelper

2
推荐指数
1
解决办法
1645
查看次数

如何将 Func&lt;T, bool&gt; 转换为 Expression&lt;Func&lt;T, bool&gt;&gt;

我使用这段代码,但出现错误:

错误:System.ArgumentException:“...GreenPaperItem”类型的表达式不能用于方法“Boolean”的“System.Runtime.CompilerServices.Closure”类型的参数

public static Expression<Func<T, bool>> ToExpression<T>(Func<T, bool> p)
{
     ParameterExpression p0 = Expression.Parameter(typeof(T));
     ParameterExpression p1 = Expression.Parameter(typeof(bool));
     return Expression.Lambda<Func<T, bool>>(Expression.Call(p.Method, p0, p1),
           new ParameterExpression[] { p0, p1 });
}
Run Code Online (Sandbox Code Playgroud)

该表达式旨在用于 linq toEntity IQueriyable 查询:

 query = query.Where(ToExpression<GreenPaperItem>(filter.GenerateFilterFunction()));
Run Code Online (Sandbox Code Playgroud)

c# lambda expression expression-trees entity-framework-core

2
推荐指数
1
解决办法
136
查看次数