【发布时间】:2020-07-01 17:48:46
【问题描述】:
我正在尝试编写一个函数,在我的 Json 文件中写入我在 PostMan 上输入的值 我的 Json 文件如下:
[
{
"targets":[
"192.168.1.101:9182",
"192.168.1.103:9100",
"192.168.1.105:9182"
]
}
]
M 尝试使用以下查询例如目标:
{
"targets": [
"192.168.1.117:9100"
]
}
这是我的班级模型:
public class targetResponse
{
public IList<string> targets { get; set; }
}
普罗米修斯部分一切正常(没有错误)。
这是我使用的函数:
[HttpPost]
[ProducesResponseType(typeof(targetResponse), StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<ActionResult<targetResponse>> PostNewInstanceToConfig([FromBody] targetResponse _target)
{
IList<targetResponse> myList = new List<targetResponse>();
var jsonString = System.IO.File
.ReadAllText(_filePath);
myList = JsonConvert.DeserializeObject<List<targetResponse>>(jsonString);
myList.FirstOrDefault().targets.Add(_target.ToString());
StreamWriter myWriter = new StreamWriter(_filePath);
JsonSerializer mySerializer = new JsonSerializer();
mySerializer.Serialize(myWriter, myList);
myWriter.Close();
return null;
}
它打开文件并写以下内容,我不明白为什么它不为什么:
[
{
"targets": [
"192.168.1.101:9182",
"192.168.1.103:9100",
"192.168.1.105:9182",
"ApplicationTestCRUD_JSON.targetResponse",
"ApplicationTestCRUD_JSON.targetResponse"
]
}
]
“ApplicationTestCRUD_JSON”是我的项目的名称。
有什么帮助吗?
编辑:
我添加了一个foreach 循环并删除了.toString() 方法,我的函数现在看起来像这样:
[HttpPost]
[ProducesResponseType(typeof(targetResponse), StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<ActionResult<targetResponse>> PostNewInstanceToConfig([FromBody] targetResponse _target)
{
IList<targetResponse> myList = new List<targetResponse>();
var jsonString = System.IO.File
.ReadAllText(_filePath);
myList = JsonConvert.DeserializeObject<List<targetResponse>>(jsonString);
foreach(var x in _target.targets)
{
myList.FirstOrDefault().targets.Add(x);
}
StreamWriter myWriter = new StreamWriter(_filePath);
JsonSerializer mySerializer = new JsonSerializer();
mySerializer.Serialize(myWriter, myList);
myWriter.Close();
return null;
}
【问题讨论】:
-
可以分享一下targetResponse类的代码吗?
-
是的,请检查帖子:)
标签: c# json api asp.net-core postman