C# 使用嵌套json数据创建RESTAPI
我有一个json对象,我想通过rest api保存在数据库中:C# 使用嵌套json数据创建RESTAPI,c#,.net,json,rest,C#,.net,Json,Rest,我有一个json对象,我想通过rest api保存在数据库中: {"name":"gg", "fragments": [ "{ \"cadence\":\"NORMAL\", \"distance\":1.0, \"inTrainingDistance\":0.0, \"inTrainingSeconds\":0, \"inTrainingState\":\"n
{"name":"gg",
"fragments":
[
"{
\"cadence\":\"NORMAL\",
\"distance\":1.0,
\"inTrainingDistance\":0.0,
\"inTrainingSeconds\":0,
\"inTrainingState\":\"n\",
\"minutes\":5,
\"points\":[],
\"seconds\":0,
\"totalSeconds\":300,
\"unique_id\":0
}",
"{
\"cadence\":\"NORMAL\",
\"distance\":1.0,
\"inTrainingDistance\":0.0,
\"inTrainingSeconds\":0,
\"inTrainingState\":\"n\",
\"minutes\":5,
\"points\":[],
\"seconds\":0,
\"totalSeconds\":300,
\"unique_id\":1
}"
],
"summary":
"{
\"data\":
{
\"day\":20,
\"hours\":20,
\"minutes\":8,
\"month\":4,
\"seconds\":11,
\"year\":2017
},
\"favourite\":false,
\"name\":\"gg\",
\"reward\":\"f\",
\"totalCheckpoints\":2,
\"totalDist\":2.0,
\"totalTime\":\"10:00\"
}"
}
我在api中的模型如下所示:
public class PlanModel
{
public String name { get; set;}
public List<fragments> fragments { get; set;}
public summary summary { get; set; }
}
public class fragments
{
public String cadence { get; set; }
public float distance { get; set; }
public float inTrainingDistance { get; set; }
public int inTrainingSeconds { get; set; }
public String inTrainingState { get; set; }
public int minutes { get; set; }
public List<points> point { get; set; }
public int seconds { get; set; }
public int totalSeconds { get; set; }
public int unique_id { get; set; }
}
public class summary
{
public data data { get; set; }
public bool favourite { get; set; }
public string name { get; set; }
public string reward { get; set; }
public int totalCheckpoints { get; set; }
public float totalDist { get; set; }
public TimeSpan totalTime { get; set; }
}
public class points
{
public float altitude { get; set; }
public float latitude { get; set; }
public float longitude { get; set; }
public int time { get; set; }
}
public class data
{
public int day { get; set; }
public int hours { get; set; }
public int minutes { get; set; }
public int month { get; set; }
public int seconds { get; set; }
public int year { get; set; }
}
follow_redirects:true
method:POST
url:localhost:58202/api/Plan/
digest_username:
digest_password:
consumer_key:
consumer_secret:
access_token:
token_secret:
signature_type:query
header_name_1:Content-Type
header_value_1:application/json
body:{"name":"gg",
"fragments":
[
"{
\"cadence\":\"NORMAL\",
\"distance\":1.0,
\"inTrainingDistance\":0.0,
\"inTrainingSeconds\":0,
\"inTrainingState\":\"n\",
\"minutes\":5,
\"points\":[],
\"seconds\":0,
\"totalSeconds\":300,
\"unique_id\":0
}",
"{
\"cadence\":\"NORMAL\",
\"distance\":1.0,
\"inTrainingDistance\":0.0,
\"inTrainingSeconds\":0,
\"inTrainingState\":\"n\",
\"minutes\":5,
\"points\":[],
\"seconds\":0,
\"totalSeconds\":300,
\"unique_id\":1
}"
],
"summary":
"{
\"data\":
{
\"day\":20,
\"hours\":20,
\"minutes\":8,
\"month\":4,
\"seconds\":11,
\"year\":2017
},
\"favourite\":false,
\"name\":\"gg\",
\"reward\":\"f\",
\"totalCheckpoints\":2,
\"totalDist\":2.0,
\"totalTime\":\"10:00\"
}"
}
请求如下所示:
public class PlanModel
{
public String name { get; set;}
public List<fragments> fragments { get; set;}
public summary summary { get; set; }
}
public class fragments
{
public String cadence { get; set; }
public float distance { get; set; }
public float inTrainingDistance { get; set; }
public int inTrainingSeconds { get; set; }
public String inTrainingState { get; set; }
public int minutes { get; set; }
public List<points> point { get; set; }
public int seconds { get; set; }
public int totalSeconds { get; set; }
public int unique_id { get; set; }
}
public class summary
{
public data data { get; set; }
public bool favourite { get; set; }
public string name { get; set; }
public string reward { get; set; }
public int totalCheckpoints { get; set; }
public float totalDist { get; set; }
public TimeSpan totalTime { get; set; }
}
public class points
{
public float altitude { get; set; }
public float latitude { get; set; }
public float longitude { get; set; }
public int time { get; set; }
}
public class data
{
public int day { get; set; }
public int hours { get; set; }
public int minutes { get; set; }
public int month { get; set; }
public int seconds { get; set; }
public int year { get; set; }
}
follow_redirects:true
method:POST
url:localhost:58202/api/Plan/
digest_username:
digest_password:
consumer_key:
consumer_secret:
access_token:
token_secret:
signature_type:query
header_name_1:Content-Type
header_value_1:application/json
body:{"name":"gg",
"fragments":
[
"{
\"cadence\":\"NORMAL\",
\"distance\":1.0,
\"inTrainingDistance\":0.0,
\"inTrainingSeconds\":0,
\"inTrainingState\":\"n\",
\"minutes\":5,
\"points\":[],
\"seconds\":0,
\"totalSeconds\":300,
\"unique_id\":0
}",
"{
\"cadence\":\"NORMAL\",
\"distance\":1.0,
\"inTrainingDistance\":0.0,
\"inTrainingSeconds\":0,
\"inTrainingState\":\"n\",
\"minutes\":5,
\"points\":[],
\"seconds\":0,
\"totalSeconds\":300,
\"unique_id\":1
}"
],
"summary":
"{
\"data\":
{
\"day\":20,
\"hours\":20,
\"minutes\":8,
\"month\":4,
\"seconds\":11,
\"year\":2017
},
\"favourite\":false,
\"name\":\"gg\",
\"reward\":\"f\",
\"totalCheckpoints\":2,
\"totalDist\":2.0,
\"totalTime\":\"10:00\"
}"
}
您将此json发送到哪里?您可以发送一个请求,从您发送这个json吗?。例如,如果您从浏览器通过javascript发送此json,您可以在“网络”选项卡中看到(chrome中的F12)请求URL:引用方策略:显示降级请求标题时无引用方临时标题\uuuuu DHC-Request-Id:15b968fd691内容类型:应用程序/json来源:chrome-extension://aejoelaoggembcahagimdiliamlcdmfm 用户代理:Mozilla/5.0(Windows NT 6.1;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/57.0.2987.133 Safari/537.36抱歉,但是,您能在您的评论中看到json数据吗?。您需要在问题或评论中包含完整的请求。有了这些,我们可以看到您是如何发送信息的抱歉误解了您,在一个问题中编辑并添加了一个来自网络选项卡的完整请求。在您的JSON中,
“summary”
的值和数组“fragments”中的值类似:[]实际上是包含转义的双序列化JSON的字符串文本。为什么要以这种方式创建JSON?这个问题能解决吗?