![](/img/trans.png)
[英]How to Format the nested string json property serialized json in C#
[英]append property to serialized json string in c#
我有一個要序列化的課程
public class DesignEntity
{
public string DesignName { get; set; }
public string DesignID { get; set; }
[ScriptIgnore]
public string designDetails { get; set; }
}
屬性designDetails
已經包含序列化的數據,因此無需再次對其進行序列化
DesignEntity designSessionEntity = null;
JavaScriptSerializer jSerializer = null;
string designJsonSession = "null";
designSessionEntity = new DesignEntity();
jSerializer = new JavaScriptSerializer();
designSessionEntity = /* */ // Get Values via some method
designJsonSession = jSerializer.Serialize(designSessionEntity);
// Now append designDetails to resultant string json
我想追加designDetails
到designJsonSession
序列完成后。 我怎樣才能達到同樣的目的?
首先,向您的DesignEntity
類添加一個字段。 誰的類型是designDetails
json序列化的合同類。
public class DesignEntity
{
public string DesignName { get; set; }
public string DesignID { get; set; }
/// new field
public DesignDetailsObject DesignDetails { get; set; }
[ScriptIgnore]
public string designDetails { get; set; }
}
然后,照常獲取對象,首先將json反序列化到該新字段中,然后對其進行序列化。
var designSessionEntity = new DesignEntity();
var jSerializer = new JavaScriptSerializer();
designSessionEntity = /// Get Values via some method
/// assign the design details with deserialized object
designSessionEntity.DesignDetails = jSerializer.Deserialize<DesignDetailsObject>(designSessionEntity.designDetails);
/// serialize it again
var designJsonSession = jSerializer.Serialize(designSessionEntity);
瞧!
更新
如果您沒有訪問designDetails
json進行序列化的類,則有兩個選擇。
DesignDetailsObject
自己創建DesignDetailsObject
(推薦)。 代碼段對於選項2:
public string JsonAppender ( string targetJson, List<string> fields, object value )
{
var insertIndex = 0;
foreach ( var field in fields )
{
var _fieldDescriptor = field + "\":";
insertIndex += targetJson.Substring(insertIndex).IndexOf(_fieldDescriptor) + _fieldDescriptor.Length;
}
var lengthOfDefaultVal = targetJson.Substring(insertIndex).IndexOf("\"") - 1;
return targetJson.Substring(0, insertIndex) + "\"" + value + "\"" + targetJson.Substring(insertIndex + lengthOfDefaultVal);
}
用法:
var fieldAppendedJson = JsonAppender(json, new List<string> { "designDetails " }, designSessionEntity.designDetails);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.