如何为json对象中的段发送array[]
how to send array [] for segments in json objects
这是我的Api Controller方法,它正在与Rest Api Url对话。我正在发送所有必要的数据来在此Url上进行搜索。现在,一切都好了,它返回Http状态代码200和正确的响应。示例代码是:
[System.Web.Http.HttpPost]
public async Task<HttpResponseMessage> SearchFlight([FromBody]SearchForFlight sof)
{
string url = "http://api.tektravels.com/BookingEngineService_Air/AirService.svc/rest/Search/";
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new
System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
var payload = JsonConvert.SerializeObject(sof);
var response = await client.PostAsync(url, new StringContent(payload, Encoding.UTF8, "application/json"));
var json = await response.Content.ReadAsStringAsync();
HttpResponseMessage res = Request.CreateResponse(HttpStatusCode.OK, json);
return res;
}
}
我正在序列化软件对象并发布回客户端对象:
var response = await client.PostAsync(url, new StringContent(payload, Encoding.UTF8, "application/json"));
现在,如果我尝试使用以下内容从该响应中读取字符串形式的内容:
var json = await response.Content.ReadAsStringAsync();
现在,我没有得到适当的回应。我得到的回复是:
"{'"Response'":{'"ResponseStatus'":3,
'"Error'":{'"ErrorCode'":3,'"ErrorMessage'":'"Please specify Flight Segment.'"},
'"TraceId'":'"98b33a39-5dd9-48fa-999c-0eb5c99adef1'"}}"
问题就在这里根据文档,Segment对象应该是这样的:
"Segments": [
{
"Origin": "DEL",
"Destination": "BOM",
"FlightCabinClass": "1",
"PreferredDepartureTime": "2015-11-06T00: 00: 00",
"PreferredArrivalTime": "2015-11-06T00: 00: 00"
}
],
当我使用这段代码将数据发送回webapi控制器时这里我已经从Segments对象中省略了[]数组符号
<script>
$(document).ready(function () {
$("#btnPost").click(function () {
var sof = {
AdultCount: $("#AdultCount").val(),
JourneyType: $("#JourneyType :selected").text(),
PreferredAirlines: null,
Segments: {
Origin: $("#Origin").val(),
Destination: $("#Destination").val(),
FlightCabinClass: $("#FlightCabinClass").val(),
PreferredDepartureTime: $("#PreferredDepartureTime").val(),
PreferredArrivalTime: $("#PreferredArrivalTime").val(),
},
};
如果我没有省略这个[]数组符号,那么我就无法将正确的数据发布回webapi控制器。如果我省略了,那么我的回答就是错误的。如何通过json对象数组为嵌套对象赋值,我被告知要省略,正如你在这个问题中看到的那样请有人帮我。
在SearchForFlight类中,将Segments属性设置为列表。
public List<otherType> Segments { get; set; }
在js中,使用数组
Segments: [
{
Origin: $("#Origin").val(),
Destination: $("#Destination").val(),
FlightCabinClass: $("#FlightCabinClass").val(),
PreferredDepartureTime: $("#PreferredDepartureTime").val(),
PreferredArrivalTime: $("#PreferredArrivalTime").val(),
}
]
相关文章:
- 如何为json对象中的段发送array[]
- 如何允许web浏览器记住未以标准方式发送的表单字段
- Javascript/ajax 不向 php 发送空字段
- 通过电子邮件发送表单通过javascript提交字段发送表单
- 将加密的剃须刀密码字段发送到 mvc4 控制器
- 通过按 Enter 将消息从输入字段发送到数据库
- 如何使用 jQuery 将变量从隐藏字段发送到远程 PHP 文件,并在引导模式中显示脚本的结果,而无需刷新
- 正在向表单字段发送按键
- 将仅日期字段发送到浏览器应用程序
- JavaScript-将JavaScript对象作为隐藏的输入字段发送
- 在使用 Javascript 将同名表单字段发送到 PHP 脚本时遇到问题
- 将表单中的多个值字段发送到aspx web表单的高效且轻松的方式
- 使用JavaScript为空表单字段发送单独的错误消息
- Javascript与Spring不能从字段发送数据
- FCM -以编程方式向用户段发送推送通知
- ajax将数据从tinyMCE文本字段发送到PHP
- jQuery输入字段发送到页面修复的顶部
- Meteor Shopify API:通过集合ID将元字段发送到集合
- 从表单外部的字段发送数据
- 如何从输入字段发送值到javascript