小编San*_*Riz的帖子

System.Text.JSON 不会反序列化 Newtonsoft 所做的事情

我有一个 json,新System.Text.Json.JsonSerializer.Deserialize<T>(json_data)序列化为List<T>正确数量的元素,但是里面的对象的所有值都是 null 或 0

Newtonsoft.Json.JsonConvert.DeserializeObject<T>(json_data)正确填充了相同的json 。

班级:

public class SensorValue
    {
        public string StationCode { get; set; }
        public string SensorCode { get; set; }
        public string SensorNameIt { get; set; }
        public string SensorNameDe { get; set; }
        public string SensorNameLd { get; set; }
        public string SensorUnitMeasure { get; set; }
        public DateTime SamplingDateTime { get; set; }
        public Decimal SamplingValue { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

JSON

[{"stationCode":"89190MS","sensorCode":"LT","sensorNameIt":"Temperatura dell´aria","sensorNameDe":"Lufttemperatur","sensorNameLd":"Temperatura dl’aria","sensorUnitMeasure":"°C","samplingDateTime":"2019-11-15T15:10:00","samplingValue":0.3},{"stationCode":"89190MS","sensorCode":"N","sensorNameIt":"Precipitazioni","sensorNameDe":"Niederschlag","sensorNameLd":"plueia","sensorUnitMeasure":"mm","samplingDateTime":"2019-11-15T15:10:00","samplingValue":0.4},{"stationCode":"89190MS","sensorCode":"WR","sensorNameIt":"Direzione del vento","sensorNameDe":"Windrichtung","sensorNameLd":"Direzion …
Run Code Online (Sandbox Code Playgroud)

c# json system.text.json

13
推荐指数
2
解决办法
6314
查看次数

如何在 net 6 和最小 api 中返回内容类型为 json 的 json 字符串?

如果我有一个 json 字符串(例如从文件中读取)并且我的 api 以字符串形式返回,Postman 会将响应视为文本

app.MapGet("/myapi", () =>
{
    var json = File.ReadAllText("file.json");
    return json;  
});
Run Code Online (Sandbox Code Playgroud)

那么如何强制内容类型为 application/json 呢?(请不要使用 Newtonsoft)我能够使用该解决方法,但看起来很丑

app.MapGet("/myapi", () =>
{
    var json = File.ReadAllText("file.json");
    var jo = JsonSerializer.Deserialize<object>(json);
    return Results.Json(jo);
});
Run Code Online (Sandbox Code Playgroud)

谢谢

c# json asp.net-core minimal-apis

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

Blazor 服务器:仅在某些页面上加载 js 脚本,而不是在所有页面上

建议在 _Host.cshtml 中加载 JS 库,而不是在布局中(也不在不允许的组件中)

但是这样做,如何为一个页面加载一些脚本而为另一个页面加载一些脚本?例如。我只想要我使用它们的页面中的 googlemaps 内容或数据表内容,而不是全部(浪费空间/内存/加载时间)。

谢谢

blazor

9
推荐指数
1
解决办法
3321
查看次数

Blazor:使用 onchange 而不是绑定将初始值设置为选择

我们知道使用 InputSelect 我们不能同时使用 @bind-value 和 @onchange

如果我们使用后者(用 select 代替 InputSelect)我们如何设置一个不同于第一个的初始值?(例如,在此样本中设置为 2018 年,变量的值)

就像是 if (i == month) => selected

<select @onchange="ChangeYear">
    @for (int i = 2015; i < DateTime.Now.Year + 1; i++)
    {
        <option value="@i">@i</option>
    }
</select>

@code {

    int year = 2018;

    void ChangeYear(ChangeEventArgs e)
    {
        int year = Convert.ToInt32(e.Value.ToString());

        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

.net c# blazor

5
推荐指数
2
解决办法
9445
查看次数

如何获取自定义 Blazor 组件的特定实例

来自 asp.net webforms 我总是有些怀疑如何在 Blazor 中实现某些任务,没有引用控件或组件的唯一 ID。

假设我有一个名为 MyCard(一个简单的引导卡)的自定义组件,它公开了一个 Visible 属性

<div class="card mb-3 @display" style="width: 18rem;">
    <div class="card-body">
        @ChildContent
    </div>
</div>


@code {
    string display = "";

    [Parameter]
    public RenderFragment ChildContent { get; set; }

    private bool _visible = true;
    [Parameter]
    public bool Visible
    {
        get
        {
            return _visible;
        }
        set
        {
            _visible = value;
            display = value ? "" : "d-none";
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

然后我在一页上使用多个

@page "/"

<h1>Hello, world!</h1>

<MyCard Visible="@hidetoggles[0]">First Card</MyCard>

<MyCard Visible="@hidetoggles[1]">Second Card</MyCard>

<MyCard Visible="@hidetoggles[2]">Third Card</MyCard> …
Run Code Online (Sandbox Code Playgroud)

blazor

5
推荐指数
1
解决办法
4629
查看次数

标签 统计

blazor ×3

c# ×3

json ×2

.net ×1

asp.net-core ×1

minimal-apis ×1

system.text.json ×1