![](/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.