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
C# 如何写回用于读取的相同Json文件_C#_Json_Ajax - Fatal编程技术网

C# 如何写回用于读取的相同Json文件

C# 如何写回用于读取的相同Json文件,c#,json,ajax,C#,Json,Ajax,我有一个用于读取的JSON文件,从中,我得到一些JSON值,以便创建一个ajax请求,从中,ajax请求我得到ajax内容作为字符串,并将其写入新的文本文件中,然后我将文件名添加到对象中,该对象表示读取JSON的子对象。我可以将值添加到Jason中,但问题是,当我试图覆盖那些它不支持的特定子项时,我只能在页面的末尾写入它们,但我需要在特定子项中写入它们 这是我的特雷森 这是我的密码 private Task LoadJson(BaseDocument baseDocument)

我有一个用于读取的JSON文件,从中,我得到一些JSON值,以便创建一个ajax请求,从中,ajax请求我得到ajax内容作为字符串,并将其写入新的文本文件中,然后我将文件名添加到对象中,该对象表示读取JSON的子对象。我可以将值添加到Jason中,但问题是,当我试图覆盖那些它不支持的特定子项时,我只能在页面的末尾写入它们,但我需要在特定子项中写入它们

这是我的特雷森

这是我的密码

       private Task LoadJson(BaseDocument baseDocument)
    {
        string path = string.Empty;
        path = baseDocument.Path.ToString();
        string fulltreepath = path + "\\tree.json";

        using (StreamReader r = new StreamReader(fulltreepath))
        {
            string json = r.ReadToEnd();
            var parsed = JObject.Parse(json);
            dynamic array = JsonConvert.DeserializeObject(json);
            data = (JArray)parsed["children"][1]["children"];
        }

        foreach (JObject children in data)
        {
            var value = children.GetValue("html").ToString();
            List<string> elements = new List<string>();
            var matches = reg.Matches(value);
            foreach (Match match in matches)
            {
                var theData = match.Groups[1].Value;
                elements.Add(theData);
            }
            var ParameterObject = new List<object>();
            for (int i = 1; i < 3; i++)
            {
                ParameterObject.Add(Int32.Parse(elements[i]));
            }
            ParameterObject.Add(elements[0]);
            var client = new RestClient("https://www.nfa.futures.org/api/DataHandlerEnforcementReg.ashx");
            var request = new RestRequest(Method.POST);
            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("Connection", "keep-alive");
            request.AddHeader("Content-Length", "111");
            request.AddHeader("Accept-Encoding", "gzip, deflate");
            request.AddHeader("Host", "www.nfa.futures.org");
            request.AddHeader("Postman-Token", "c4e54cce-4d2a-4d48-a003-3e8afb205bae,9761dd14-13b5-4da1-929c-8049099b4ba7");
            request.AddHeader("Cache-Control", "no-cache");
            request.AddHeader("Accept", "*/*");
            request.AddHeader("User-Agent", "PostmanRuntime/7.15.2");
            request.AddHeader("Content-Type", "text/plain");
            request.AddParameter("undefined", "{\"id\":1,\"method\":\"getRuleOrRules\",\"params\":{ \"sectionSeqId\" :" + ParameterObject[0] + ", \"subSectionSeqId\" :" + ParameterObject[1] + ", \"ruleId\" : \"" + ParameterObject[2] + "\"}}", ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);
            var res = response.Content;
            var FinalResponse = JObject.Parse(res);

            var Uri = children.GetValue("uri").ToString();

            var FileName = MD5Hash(Uri) + "_transform2";

            children.Add(new JProperty("transformedUri", FileName));

            var l = children;

            using (FileStream fs = File.Open(fulltreepath, FileMode.Append))
            using (StreamWriter sw = new StreamWriter(fs))
            using (JsonWriter jw = new JsonTextWriter(sw))
            {
                jw.Formatting = Formatting.Indented;

                JsonSerializer serializer = new JsonSerializer();
                serializer.Serialize(jw, children);
            }
            var Pathfile = path + "\\" + FileName;
            if (FinalResponse["result"]["result"][0]["RULE_DESCRIPTION"] != null)
            {
                var jsonData = JsonConvert.SerializeObject(FinalResponse["result"]["result"][0]["RULE_DESCRIPTION"]);
                File.WriteAllText(Pathfile, jsonData.Replace('"', ' ').Trim());
            }

        }
        return Task.CompletedTask;
    }
}
private Task LoadJson(BaseDocument-BaseDocument)
{
字符串路径=string.Empty;
path=baseDocument.path.ToString();
字符串fulltreepath=path+“\\tree.json”;
使用(StreamReader r=新StreamReader(fulltreepath))
{
字符串json=r.ReadToEnd();
var parsed=JObject.Parse(json);
动态数组=JsonConvert.DeserializeObject(json);
数据=(JArray)已解析[“子项”][1][“子项”];
}
foreach(数据中的JObject子项)
{
var value=children.GetValue(“html”).ToString();
列表元素=新列表();
var matches=reg.matches(值);
foreach(匹配中的匹配)
{
var theData=match.Groups[1]。值;
元素。添加(数据);
}
var ParameterObject=新列表();
对于(int i=1;i<3;i++)
{
ParameterObject.Add(Int32.Parse(elements[i]);
}
ParameterObject.Add(元素[0]);
var client=新的RestClient(“https://www.nfa.futures.org/api/DataHandlerEnforcementReg.ashx");
var请求=新的重新请求(Method.POST);
AddHeader(“缓存控制”、“无缓存”);
AddHeader(“连接”、“保持活动”);
请求.AddHeader(“内容长度”、“111”);
AddHeader(“接受编码”、“gzip、deflate”);
request.AddHeader(“主机”,“www.nfa.futures.org”);
请求添加标题(“邮递员令牌”,“c4e54cce-4d2a-4d48-a003-3e8afb205bae,9761dd14-13b5-4da1-929c-8049099b4ba7”);
AddHeader(“缓存控制”、“无缓存”);
request.AddHeader(“接受”,“*/*”);
AddHeader(“用户代理”、“PostmanRuntime/7.15.2”);
AddHeader(“内容类型”、“文本/普通”);
AddParameter(“未定义”,“id\”:1,“方法\:“getRuleOrRules\”,“params\”:{“sectionSeqId\”:“+ParameterObject[0]+”,“subSectionSeqId\”:“+ParameterObject[1]+”,“ruleId\”:“+ParameterObject[2]+“\”}”,ParameterType.RequestBody);
IRestResponse response=client.Execute(请求);
var res=响应。内容;
var FinalResponse=JObject.Parse(res);
var Uri=children.GetValue(“Uri”).ToString();
var FileName=MD5Hash(Uri)+“_transform2”;
添加(新的JProperty(“transformedUri”,文件名));
var l=儿童;
使用(FileStream fs=File.Open(fulltreepath,FileMode.Append))
使用(StreamWriter sw=新StreamWriter(fs))
使用(JsonWriter jw=新的JsonTextWriter(sw))
{
jw.Formatting=格式化.缩进;
JsonSerializer serializer=新的JsonSerializer();
serializer.Serialize(jw,子级);
}
var Pathfile=path+“\\”+文件名;
如果(最终响应[“结果”][“结果”][0][“规则描述”]!=null)
{
var jsonData=JsonConvert.SerializeObject(最终响应[“结果”][“结果”][0][“规则描述”]);
WriteAllText(路径文件,jsonData.Replace(“”,“).Trim());
}
}
返回Task.CompletedTask;
}
}
这是我用来读写的JSON文件

            {
         "uri": "https://www.nfa.futures.org/news/
       EnforceRegActionsSimple.aspx",
      "children": [
           {
     "uri":
          "https://www.nfa.futures.org/news/
        EnforceRegActionsSimple.aspx#145View%209%2Be12 
         33a13%401",
  "children": [
    {
           "uri": "https://www.nfa.futures.org/news/
             EnforceRegActionsSimple.aspx#1
              14Rule4%2Be6ea03f2%400%40145View%209%2Be1233a13%401",
      "cachedUri": null,
      "title": "Compliance Rules : Rule 2-2 : Rule",
      "type": "Enforcement and Registration Actions : Rule",
      "html": "<span data-rule-id=\"RULE 2-2\" data-rule-section=\"4\" data-rule-sub-section=\"0\" class=\"btn-add-rule\" data-cube-level=\"2\" data-cube-scope=\"25178371\">Rule</span>"
    },
    {
      "uri": "https://www.nfa.futures.org/news
       /EnforceRegActionsSimple.aspx#
          114Rule4%2Be6ea03f2%401%40145View%209%2Be1233a13%401",
      "cachedUri": null,
      "title": "Compliance Rules : Rule 2-4 : Rule",
      "type": "Enforcement and Registration Actions : Rule",
      "html": "<span data-rule-id=\"RULE 2-4\" data-rule-section=\"4\" data- 
      rule-sub-section=\"0\" class=\"btn-add-rule\" data-cube-level=\"2\" 
       data-cube-scope=\"59284911\">Rule</span>"
     }]
    }
     }
{
“uri”:https://www.nfa.futures.org/news/
EnforceRegActionsSimple.aspx“,
“儿童”:[
{
“uri”:
"https://www.nfa.futures.org/news/
EnforceRegActionsSimple.aspx#145View%209%2Be12
33a13%401“,
“儿童”:[
{
“uri”:https://www.nfa.futures.org/news/
EnforceRegActionsSimple.aspx#1
14规则4%2Be6ea03f2%400%40145视图%209%2Be1233a13%401“,
“cachedUri”:空,
“标题”:“合规规则:规则2-2:规则”,
“类型”:“强制执行和注册行动:规则”,
“html”:“规则”
},
{
“uri”:https://www.nfa.futures.org/news
/EnforceRegActionsSimple.aspx#
114Rule4%2Be6ea03f2%401%40145视图%209%2Be1233a13%401“,
“cachedUri”:空,
“标题”:“合规规则:规则2-4:规则”,
“类型”:“强制执行和注册行动:规则”,
“html”:“规则”
}]
}
}

您已经找到了创建数据库的原因。通过大量仔细的编程,您可以对同一个文件进行读写。但是,如果您想用150字节长的更新数据块替换原始文件中的100字节数据块,您该怎么办呢?看看MongoDB或其他JSON友好型数据库您的JSON格式不太好ed.如果我将其上载到,我会收到多个错误,因为1)字符串值中有换行符,这是不允许的;2)最外面的
“子项”:[
数组缺少结束符
]
brace。您能不能请您的问题包含格式良好的JSON,我们可以测试并使用一个演示您问题的工具?关于格式良好的JSON可能是什么样子的,我的最佳猜测是:但正如上面提到的@Flydog57,JSON文件不是数据库,而是文本文件。您需要将该文件反序列化为n内存数据模型(可能只是
JToken