C# 在服务器usin C中修改Json文件#
我有这个JSon文件:C# 在服务器usin C中修改Json文件#,c#,json,C#,Json,我有这个JSon文件: { "fruits": [ { "id":"01", "name": "orange" }, { "id":"02", "name": "banana" }] } 此文件位于服务器()中 我想开发一个windows应用程序,以便能够在这个json文件中添加我想要的任意多的水果,我可以使用json.net从服务器获取json字符串,但我无法从c#应用程序更改json文件内容 我想知道是否有可能做到这一点,以及如何做到这一点。首先必须将JSON字符串
{
"fruits": [
{
"id":"01",
"name": "orange"
},
{
"id":"02",
"name": "banana"
}]
}
此文件位于服务器()中
我想开发一个windows应用程序,以便能够在这个json文件中添加我想要的任意多的水果,我可以使用json.net从服务器获取json字符串,但我无法从c#应用程序更改json文件内容
我想知道是否有可能做到这一点,以及如何做到这一点。首先必须将JSON字符串反序列化为强类型对象(如@David在评论中所说),然后对其进行修改。如果您想将数据发送回服务器,您应该将
对象
序列化回JSON并将其发送回服务器。
下面是一个反序列化JSON字符串的示例:
public class Fruit
{
public string id;
public string name;
}
public class FruitCollection
{
public List<Fruit> fruits;
}
...
string jsonString = "Your JSON string goes here";
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(FruitCollection));
FruitCollection fruitCollection = null;
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
{
fruitCollection = (FruitCollection)ser.ReadObject(ms);
}
公共类水果
{
公共字符串id;
公共字符串名称;
}
公营水果收藏
{
公开上市水果;
}
...
string jsonString=“您的JSON字符串位于此处”;
DataContractJsonSerializer ser=新的DataContractJsonSerializer(typeof(FrootCollection));
FrootCollection-FrootCollection=null;
使用(MemoryStream ms=newmemoryStream(Encoding.UTF8.GetBytes(jsonString)))
{
水果收集=(水果收集)序列读取对象(ms);
}
现在,您有了包含您实际收藏的
FrootCollection
对象,您可以向其中添加一些水果。您只想向Froots集合添加水果,或者您想修改集合并将数据发布回服务器?从您的应用程序发布一些C代码。您应该将其解析为强类型对象,修改C#对象并重新序列化以发送到客户端。永远不要直接在C层修改JSON字符串。谢谢。。这解决了我的问题