我想将 Flutter 与 ASP.NET API 集成。问题是,当我创建最小的 API 时,我将 swagger 中生成的链接发布到 Postman,结果结果是字符串而不是 JSON;怎么解决这个问题?
app.MapPost("/Service", (Service person) =>
{
using var conn = new SqlConnection(connectionString);
conn.Open();
var command = new SqlCommand(
$"INSERT INTO Service ( servicename, description, category,initialprice,IntermediatePrice,AdvancedPrice) VALUES ('{person.ServiceName}','{person.Description}','{person.Category}','{person.InitialPrice}','{person.IntermediatePrice}','{person.AdvancedPrice}')",
conn);
using SqlDataReader reader = command.ExecuteReader();
})
.WithName("CreateService");
app.MapGet("/Result", () =>
{
var rows = new List<string>();
using var conn = new SqlConnection(connectionString);
conn.Open();
var command = new SqlCommand("SELECT TOP 100 A.DR_PI_000_01 AS drainage_id,MAX(A.DR_PI_000_03) AS latest_time \r\nFROM DR_PI_000 A\r\n\r\nGROUP BY A.DR_PI_000_01", conn);
command.CommandTimeout = 1000;
using SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
rows.Add($"Drainage_ID: {(reader.IsDBNull(0) ? null : reader?.GetString(0))},date : {(reader.IsDBNull(1) ? null : reader?.GetDateTime(1))},");
}
}
return rows;
})
.WithName("GetResult");
此片段来自我的program.cs。我不想使用 dbcontext 因为 SQL Server 中的表有太多列,我只想使用很少的列。
要在 Flutter 的最小 API 中将字符串转换为 JSON,可以使用 dart:convert 库提供的 jsonDecode 函数。以下是如何做到这一点的示例:
import 'dart:convert';
// Assuming you have a string containing JSON data
String jsonString = '{"name": "John", "age": 30}';
void main() {
// Convert the string to JSON
var json = jsonDecode(jsonString);
// Access the JSON values
String name = json['name'];
int age = json['age'];
// Print the values
print('Name: $name');
print('Age: $age');
}