【发布时间】:2021-01-18 01:56:03
【问题描述】:
我有一个 JSON 字符串,结构如下:
"{'Country':'USA','City':'New York','Population':'8554554','Area':'545887','jsonArgs':'{\"BuildingsTypes\":\"Offices\"}','keywords':['keyword1','keyword2']}"
我需要做的是更新 Area 和 BuildingsTypes 值。 我已尝试执行以下操作:
string updatedJSON = String.Format("{'Country':'USA','City':'New York','Population':'8554554','Area':'{0}','jsonArgs':'{\"BuildingsTypes\":\"{1}\"}','keywords':['keyword1','keyword2']}", countryArea, buildingType);
但是,我得到的结构是错误的,但如果我使用 falowing 作为静态它可以工作。 我也尝试过创建如下动态对象:
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','City':'New York','Population':'8554554','Area':'545887','jsonArgs':{\"BuildingsTypes\":\"Offices\"},'keywords':['keyword1','keyword2']}"
这里缺少的是{\"BuildingsTypes\":\"Offices\"} 周围的单引号,对此我将字符串发送到的另一个应用程序不接受它。
如何动态添加值或添加缺少的引号?
提前谢谢你。
【问题讨论】:
标签: c# json .net jsonconvert