我有一个 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) 如果我有一个 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)
谢谢
建议在 _Host.cshtml 中加载 JS 库,而不是在布局中(也不在不允许的组件中)
但是这样做,如何为一个页面加载一些脚本而为另一个页面加载一些脚本?例如。我只想要我使用它们的页面中的 googlemaps 内容或数据表内容,而不是全部(浪费空间/内存/加载时间)。
谢谢
我们知道使用 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)
谢谢
来自 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)