Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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.net - Fatal编程技术网

C# 取消序列化JSON字符串

C# 取消序列化JSON字符串,c#,json.net,C#,Json.net,我有这个密码 string jsonString = "{\r\n \"value1\":\"value2\" \r\n}"; string normalString = "value4"; NameValueCollection collection = new NameValueCollection(); collection["Fi

我有这个密码

        string jsonString = "{\r\n  \"value1\":\"value2\" \r\n}";

        string normalString = "value4";

        NameValueCollection collection = new NameValueCollection();
        collection["First"] = jsonString;
        collection["Second"] = normalString;

        var nvcDictionary = collection.AllKeys.ToDictionary(k => k, k => collection[k]);

        var result = JsonConvert.SerializeObject(nvcDictionary);
产生

        {\"First\":\"{\\r\\n  \\\"value1\\\":\\\"value2\\\" \\r\\n}\",\"Second\":\"value4\"}
      {\"First\":\"value2\",\"Second\":\"value4\"}
但我想要这样

        {\"First\":\"{\"value1\":\"value2\"}\",\"Second\":\"value4\"}
        string jsonString = "{\r\n  \"value1\":\"value2\" \r\n}";

        string normalString = "value4";

        var parsedJson = JObject.Parse(jsonString);
        string valuefromJsonString = parsedJson["value1"].ToString();

        NameValueCollection collection = new NameValueCollection();
        collection["First"] = valuefromJsonString;
        collection["Second"] = normalString;

        var nvcDictionary = collection.AllKeys.ToDictionary(k => k, k => collection[k]);

        var result = JsonConvert.SerializeObject(nvcDictionary);
我试过了

        Regex.Unescape(jsonString);  


但我似乎无法在开始时“取消序列化”jsonString

为什么不在处理之前删除换行符

string jsonString = "{\r\n  \"value1\":\"value2\" \r\n}";
jsonString = jsonString.Replace(Environment.NewLine, "");
当我运行它时,结果的值为

"{\"First\":\"{  \\\"value1\\\":\\\"value2\\\" }\",\"Second\":\"value4\"}"

不是我想要的,但我会这样解决

        {\"First\":\"{\"value1\":\"value2\"}\",\"Second\":\"value4\"}
        string jsonString = "{\r\n  \"value1\":\"value2\" \r\n}";

        string normalString = "value4";

        var parsedJson = JObject.Parse(jsonString);
        string valuefromJsonString = parsedJson["value1"].ToString();

        NameValueCollection collection = new NameValueCollection();
        collection["First"] = valuefromJsonString;
        collection["Second"] = normalString;

        var nvcDictionary = collection.AllKeys.ToDictionary(k => k, k => collection[k]);

        var result = JsonConvert.SerializeObject(nvcDictionary);
产生

        {\"First\":\"{\\r\\n  \\\"value1\\\":\\\"value2\\\" \\r\\n}\",\"Second\":\"value4\"}
      {\"First\":\"value2\",\"Second\":\"value4\"}

如果您打算将json字符串转换为字典,则可以使用
JsonConvert.deserialize()
方法将字符串反序列化为字典,然后基于该方法创建新字典

string jsonString = "{\r\n  \"value1\":\"value2\" \r\n}";
string normalString = "value4";
            
Dictionary<string, string> dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
Dictionary<string, string> newDict = new Dictionary<string, string>()
{
    { "First", dict["value1"] },
    { "Second", normalString }
};
Console.WriteLine(JsonConvert.SerializeObject(newDict));

// Prints:
{"First":"value2","Second":"value4"}
string jsonString=“{\r\n\“value1\”:\“value2\”\r\n}”;
字符串normalString=“value4”;
Dictionary dict=JsonConvert.DeserializeObject(jsonString);
字典newDict=新字典()
{
{“第一”,dict[“value1”]},
{“第二”,normalString}
};
WriteLine(JsonConvert.SerializeObject(newDict));
//印刷品:
{“第一个”:“value2”,“第二个”:“value4”}