Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在服务器usin C中修改Json文件#_C#_Json - Fatal编程技术网

C# 在服务器usin C中修改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字符串

我有这个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字符串。谢谢。。这解决了我的问题