如何动态更改JSON条记录?
How to dynamically change JSON records?
我有一个 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\"}
周围的单引号,我要向其发送字符串的其他应用程序不接受它。
如何动态添加值或添加缺少的引号?
提前谢谢你。
如果您想要 jsonArgs 值周围的额外引号,则需要将对象转换为字符串。最简单的方法是额外调用序列化程序。
var args = new { featureTypes = buildingType };
var jsonArgs = JsonConvert.SerializeObject(args);
如果与其他引号一样,只需替换
stringJSON.Replace("\"", "'");
我有一个 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\"}
周围的单引号,我要向其发送字符串的其他应用程序不接受它。
如何动态添加值或添加缺少的引号?
提前谢谢你。
如果您想要 jsonArgs 值周围的额外引号,则需要将对象转换为字符串。最简单的方法是额外调用序列化程序。
var args = new { featureTypes = buildingType };
var jsonArgs = JsonConvert.SerializeObject(args);
如果与其他引号一样,只需替换
stringJSON.Replace("\"", "'");