如何解决如何动态更改JSON记录?
我具有以下结构的JSON字符串:
"{'Country':'USA','City':'New York','Population':'8554554','Area':'545887','jsonArgs':'{\"BuildingsTypes\":\"Offices\"}','keywords':['keyword1','keyword2']}"
我需要做的是更新 Area 和 BuildingsTypes 值。 我尝试执行以下操作:
string updatedJSON = String.Format("{'Country':'USA','Area':'{0}','jsonArgs':'{\"BuildingsTypes\":\"{1}\"}','keyword2']}",countryArea,buildingType);
但是,我得到的结构是错误的,但是如果我使用falow作为静态,它将起作用。 我也曾尝试创建如下的动态对象:
string[] stringKeywords = new string[] {"keyword1","keyword2"};
var jsonArgs = new
{
featureTypes = buildingType
};
var layerDescription = new
{
Country = "USA",City = "New York",Population = "8554554",Area = countryArea,jsonArgs = jsonArgs,keywords = stringKeywords
};
string stringJSON = JsonConvert.SerializeObject(layerDescription);
通过这种方式,我得到几乎正确的结果:
"{'Country':'USA','jsonArgs':{\"BuildingsTypes\":\"Offices\"},'keyword2']}"
这里缺少的是{\"BuildingsTypes\":\"Offices\"}
周围的单引号,对此我要向其发送字符串的其他应用程序不接受。
如何动态添加值或添加缺少的报价?
预先谢谢你。
解决方法
如果要在jsonArgs值周围加上引号,则需要将对象转换为字符串。最简单的方法是再次调用序列化程序。
var args = new { featureTypes = buildingType };
var jsonArgs = JsonConvert.SerializeObject(args);
,
如果与其他引号一样,只需替换
stringJSON.Replace("\"","'");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。