我使用 swagger 生成的以下代码来建立模拟 api。我在尝试将字符串反序列化为枚举时遇到错误。
代码:
string exampleJson = null;
exampleJson = "{\n \"profileDescription\" : \"profileDescription\",\n \"videoURL\" : \"http://example.com/aeiou\",\n \"imageURL\" : \"http://example.com/aeiou\",\n \"imageURLs\" : [ \"http://example.com/aeiou\", \"http://example.com/aeiou\" ],\n \"name\" : \"name\",\n \"connectedStatus\" : \"connected\",\n \"id\" : \"046b6c7f-0b8a-43b9-b35d-6489e6daee91\",\n \"businessType\" : \"businessType\",\n \"infoGatherReason\" : \"infoGatherReason\"\n}";
var example = exampleJson != null
? JsonConvert.DeserializeObject<Enterprise>(exampleJson)
: default(Enterprise);
Run Code Online (Sandbox Code Playgroud)
企业.cs:
[DataContract]
public partial class Enterprise : IEquatable<Enterprise>
{
[DataMember(Name="id")]
public Guid? Id { get; set; }
[DataMember(Name="name")]
public string Name { get; set; }
[DataMember(Name="imageURL")]
public string …Run Code Online (Sandbox Code Playgroud) 在 C# 类中,我试图反序列化我从 Google Place Autocomplete API ( https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters )获取的 JSON 字符串。
JSON 如下所示:
{
"predictions" : [
{
"description" : "11 Sukhumvit Road, Khlong Toei, Bangkok, Thailand",
"id" : "ca5d46b0982d28ee26c0aa2e94785688cff38357",
"matched_substrings" : [
{
"length" : 2,
"offset" : 0
},
{
"length" : 2,
"offset" : 3
}
],
"place_id" : "ChIJa68zyuae4jAR11FuV_P2eh4",
"reference" : "CoQBcwAAAMWiPU84BlqBn84vF-fg3RPvBxYUWuSVpQ9QQuQy7mVLU1Z68z-4GZyfXqS8NGiTZ0OcG4VdSUKYbA-7rOdIdeixd6i2i_fxzUg_pwui61Tm82zdYV22JLYKeuuBh77iQ36GII9AWhKQzFYIeMR3W1PvdiQihpjalJIT9u3tNhH9EhAqh48JGeGZDrLGDzHvPQPrGhTvSTqfGzX5H_j7XpP6RptgsWbyKA",
"structured_formatting" : {
"main_text" : "11 Sukhumvit Road",
"main_text_matched_substrings" : [
{
"length" : 2,
"offset" : 0
},
{
"length" : 2, …Run Code Online (Sandbox Code Playgroud) 使用Plug.Parsers,可以配置用于解析 JSON 请求的模块:
plug Plug.Parsers,
parsers: [:json],
json_decoder: Jason
Run Code Online (Sandbox Code Playgroud)
但是,使用此语法Jason.decode!/2会使用空opts参数进行调用。
怎样才能给指定的选项提供呢json_decoder?例如,我想将keys: :atoms选项传递给Jason.decode!/2.
我在反序列化 json 文件时遇到问题,这是 json:
[
{
"id": "id",
"number": "48",
"date": "17-01-2020",
"details": [
{
"id": "id",
"code": "code",
"description": "desc"
},
{
"id": "id",
"code": "code",
"description": "desc"
}
],
"address": "add",
"note": null
},
{
"id": "id",
"number": "55",
"date": "17-01-2020",
"details": [
{
"id": "id",
"code": "code",
"description": "desc"
},
{
"id": "id",
"code": "code",
"description": "desc"
}
],
"address": "add",
"note": null
}
]
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
var result = httpClient.GetAsync(".....").Result;
List<Docu> doc= new JavaScriptSerializer().Deserialize<List<Docu>>(result.Content.ReadAsStringAsync().Result);
Run Code Online (Sandbox Code Playgroud)
类 Docu 包含 …
我从 API 调用中得到以下结果 - 能够将 JSON 字符串反序列化为 C# 对象的最佳 C# 对象结构是什么?
我的问题是 JSON 对象实际上是品牌名称而不是
"data":{"brands":{"brand":{"name:"Amazon"...etc
Run Code Online (Sandbox Code Playgroud)
api 正在返回:
"data":{"brands":{"amazon":{"name:"Amazon",....
Run Code Online (Sandbox Code Playgroud)
这使得创建品牌变得困难-->品牌层次
请参阅下面的完整 JSON 字符串:
{
"status":"success",
"code":"1254",
"message":"Hello",
"data":{
"brands":{
"amazon":{
"slug":"amazon",
"name":"Amazon UK"
},
"boots":{
"slug":"boots",
"name":"boots UK"
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 给定以下 JSON:
{
"from": 1,
"to": 3,
"results": [
{
"item": {
"status": "SUCCESS",
"statusMessage": "",
"requestId": "1"
}
},
{
"item": {
"status": "SUCCESS",
"statusMessage": "",
"requestId": "2"
}
},
{
"item": {
"status": "SUCCESS",
"statusMessage": "",
"requestId": "3"
}
},
{
"item": {
"status": "SUCCESS",
"statusMessage": "",
"requestId": "4"
}
}
]}
Run Code Online (Sandbox Code Playgroud)
为了使用反序列化,应该定义什么正确的 Kotlin 类kotlinx.serialization.json.Json?
我努力了:
data class Response (
val from: Long,
val to: Long,
val results: List<Result>
)
data class Result (
val item: …Run Code Online (Sandbox Code Playgroud) 我目前尝试从 RestSharp PostAsync 调用获取序列化响应,如
var responseData = Client.PostAsync<Data>(request).Result;
Run Code Online (Sandbox Code Playgroud)
现在,这就是我收到的:
{
"status":1,
"success":"message transmitted",
"available":19215,
"message_ids":"26684730:56798"
}
Run Code Online (Sandbox Code Playgroud)
这是“数据”类:
public class Data
{
[JsonProperty("status")]
public int Status { get; set; }
[JsonProperty("success")]
public string Success { get; set; }
[JsonProperty("available")]
public int Available { get; set; }
[JsonProperty("message_ids")]
public string MessageIds { get; set; }
[JsonProperty("error")]
public string Error { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但属性message_ids始终为空!?这可能是由字符串中的 : 引起的,而这是 RestSharp 中的一个错误吗?
“数据”如下所示:
我有一个包含以下数据的json字符串
"air:FlightOptionsList": {
"air:FlightOption": [{
"LegRef": "hx5kk+3R2BKABGzqAAAAAA==",
"Destination": "LHE",
"Origin": "DXB",
"air:Option": {
"Key": "hx5kk+3R2BKA/FzqAAAAAA==",
"TravelTime": "P0DT3H0M0S",
"air:BookingInfo": {
"BookingCode": "I",
"BookingCount": "7",
"CabinClass": "Economy",
"FareInfoRef": "hx5kk+3R2BKAzFzqAAAAAA==",
"SegmentRef": "hx5kk+3R2BKAtFzqAAAAAA=="
}
}
}, {
"LegRef": "hx5kk+3R2BKAFGzqAAAAAA==",
"Destination": "DXB",
"Origin": "LHE",
"air:Option": {
"Key": "hx5kk+3R2BKACGzqAAAAAA==",
"TravelTime": "P0DT11H30M0S",
"air:BookingInfo": [{
"BookingCode": "U",
"BookingCount": "7",
"CabinClass": "Economy",
"FareInfoRef": "hx5kk+3R2BKA+FzqAAAAAA==",
"SegmentRef": "hx5kk+3R2BKAvFzqAAAAAA=="
}, {
"BookingCode": "Y",
"BookingCount": "9",
"CabinClass": "Economy",
"FareInfoRef": "hx5kk+3R2BKA+FzqAAAAAA==",
"SegmentRef": "hx5kk+3R2BKAxFzqAAAAAA=="
}
],
"air:Connection": {
"SegmentIndex": "0"
}
}
}
]
} …Run Code Online (Sandbox Code Playgroud)