我正在使用NewtonSoft.JSON.跑步时
JsonConvert.SerializeObject(myObject)
Run Code Online (Sandbox Code Playgroud)
它正在$id为我的JSON 添加一个值 - 就像这样:
"$id": "1",
"BookingId": 0,
"CompanyId": 0,
"IsCashBooking": false,
"PaymentMethod": 0,
"IsReferral": false,
"IsReferralPercent": false,
"ReferralPaymentType": 0,
"ReferralDues": 0,
"PassengerId": 0,
"DepartmentID": 0,
"CostCenterID": 0,
"DeadMiles": 0
Run Code Online (Sandbox Code Playgroud)
我们可以$id用一些JsonSerializerSettings或任何其他方法删除它吗?
如果是 - 那么如何......
Eti*_*gné 49
我将此代码添加到我的WebApiConfig寄存器方法中,我在JSON中删除了所有$ id.
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None;
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因你正在使用自定义的ContractResolver,请看看这个其他堆栈溢出;
尽管将PreserveReferencesHandling设置为"None",Json.Net仍向EF对象添加$ id
小智 5
为我的 Web API 删除 JSON 中的 $id。我为我的类对象包含了 [JsonObject(IsReference = false)],为属于对象类型的属性包含了 [JsonProperty(IsReference = false)]。在我的例子中,RespObj 属性是通用类型 T,可以接受我传递给它的任何对象类型,包括集合,所以我不得不使用 [JsonProperty(IsReference = false)] 来去除序列化 JSON 字符串中的 $id。
我没有更改我的 WebApiConfig,因为我使用的是 WEB API 的 MVC 帮助页面,它要求我在我的 webApiconfig 中有此配置:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.All;
json.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize;
Run Code Online (Sandbox Code Playgroud)
类对象
[DataContract(IsReference = true)]
[JsonObject(IsReference = false)]
public class QMResponse<T> where T : new()
{
public QMResponse()
{
}
/// <summary>
/// The response code
/// </summary>
public string RespCode { get; set; }
/// <summary>
/// The response message
/// </summary>
public string RespMxg { get; set; }
/// <summary>
/// The exception message
/// </summary>
public string exception { get; set; }
/// <summary>
/// The object type returned
/// </summary>
[JsonProperty(IsReference = false)]
public T RespObj { get; set; }
/// <summary>
/// No of records returned
/// </summary>
public long RecordCount { get; set; }
/// <summary>
/// The Session Object
/// </summary>
public string session_id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18966 次 |
| 最近记录: |