C# 如何动态更改JSON记录?
我有一个JSON字符串,其结构如下:C# 如何动态更改JSON记录?,c#,json,.net,jsonconvert,C#,Json,.net,Jsonconvert,我有一个JSON字符串,其结构如下: "{'Country':'USA','City':'New York','Population':'8554554','Area':'545887','jsonArgs':'{\"BuildingsTypes\":\"Offices\"}','keywords':['keyword1','keyword2']}" 我需要做的是更新Area和BuildingsTypes值。 我已尝试做以下工作: s
"{'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);
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);
然而,我认为这个结构是错误的,但是如果我使用fallowing作为静态的,它就会工作。
我还尝试创建如下动态对象:
string updatedJSON = String.Format("{'Country':'USA','City':'New York','Population':'8554554','Area':'{0}','jsonArgs':'{\"BuildingsTypes\":\"{1}\"}','keywords':['keyword1','keyword2']}", countryArea, buildingType);
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\'}
的单引号,我将字符串发送到的另一个应用程序不接受它。
如何动态添加值或添加缺少的引号?
提前感谢。如果希望在jsonArgs值周围加上引号,则需要将对象转换为字符串。最简单的方法是对序列化程序进行额外调用
var args = new { featureTypes = buildingType };
var jsonArgs = JsonConvert.SerializeObject(args);
如果是关于引用,就像其他的一样,只需替换
stringJSON.Replace(“\”,“”);