C#使用变量为JSON构建一个字符串

时间:2018-01-11 19:44:22

标签: c# json variables

我对C#相对较新,并试图从JSON反序列化该值的字符串; ["格式"] ["代码"] [" ENCODER"]

// Manually building the string works fine
string test = (dict["format"]["tags"]["ENCODER"]);    

string found_value = "";

const char quote = '\u0022';

string encoder = "[" + quote + "format" + quote + "][" + quote + "tags" + quote + "][" + quote + "ENCODER" + quote + "]";

// Just as a test
encoder = encoder.Replace("\u005c\u0022", "\u0022");   

// This Fails   
found_value = (dict[encoder]); 

它会抛出类型' System.Collections.Generic.KeyNotFoundException'发生在mscorlib.dll但未在用户代码中处理 附加信息:字典中没有给定的密钥。

所以我确定它是我传递编码器字符串的方式。可能是一件非常简单的事情,但我花了好几个小时尝试各种事情,现在却对此视而不见。

提前致谢

1 个答案:

答案 0 :(得分:0)

基本上,C#不是脚本语言,而是一种编译语言。这意味着没有等效的javascript eval()函数,并且字符串与等效代码字符串的执行效果不同。所以第二次查找,你正试图这样做:

字典[ “[\” 格式\ “] [\” 标签\ “] [\” EVAL \ “]”)

正是抱怨你的第一本字典没有名字的密钥

"[\"format\"][\"tags\"][\"eval\"]"

为什么你试图以第二种方式做到这一点,当第一种方式有效时?