Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
当JSON字符串包含字符串和字符串数组时,JSON序列化程序出现问题_Json_String_Serialization_Arraylist - Fatal编程技术网

当JSON字符串包含字符串和字符串数组时,JSON序列化程序出现问题

当JSON字符串包含字符串和字符串数组时,JSON序列化程序出现问题,json,string,serialization,arraylist,Json,String,Serialization,Arraylist,当Json字符串包含“key1:value1”时,可以将其转换为字典类型 但在我的例子中,它还包含一个字符串数组以及上面的key:value,即: {k1:v1; "key2\":[{\"Key11\":{\"key21\":\"Val21\",\"key22\":\"val22\"}] (Json数据包含一些字符串和一些数组。) 当我使用Dictionary或Dictionary时——它在字符串值处失败——无法将字符串转换为字符串[],等等 仍然可以使用字典,但有没有更好的方法来处理这个问题

当Json字符串包含“key1:value1”时,可以将其转换为字典类型

但在我的例子中,它还包含一个字符串数组以及上面的key:value,即:

{k1:v1; "key2\":[{\"Key11\":{\"key21\":\"Val21\",\"key22\":\"val22\"}]
(Json数据包含一些字符串和一些数组。)

当我使用Dictionary或Dictionary时——它在字符串值处失败——无法将字符串转换为字符串[],等等

仍然可以使用字典,但有没有更好的方法来处理这个问题

谢谢
Phani

如果您在编译时不知道JSON字符串的结构,那么就没有其他方法可以序列化JSON字符串——它必须是字典。但是,如果您使用的是C#4.0,则可以使用DynamicObject。由于动态类型将类型解析延迟到运行时,如果使用这种方法进行序列化,则可以将序列化对象视为强类型对象(尽管没有编译时支持)。这意味着您可以使用JSON样式的点表示法访问属性:

MyDynamicJsonObject.key2
要实现这一点,您可以从DynamicObject继承,并实现TryGetMember方法(:


如果您在编译时不知道JSON字符串的结构,那么就没有其他方法可以序列化JSON字符串——它必须是字典。但是,如果您使用的是C#4.0,则可以使用DynamicObject。由于动态类型将类型解析推迟到运行时,因此如果使用这种方法序列化,则可以将序列化对象视为trongly类型(尽管没有编译时支持)。这意味着您可以使用JSON样式的点表示法访问属性:

MyDynamicJsonObject.key2
要实现这一点,您可以从DynamicObject继承,并实现TryGetMember方法(:


您的示例不是有效的JSON,例如,每个键和值都应该被
包围,例如
{“k1”:“v1”}
,开头和结尾的花括号的数量必须匹配,如果您使用
\
转义
字符,则必须添加另一个
字符,例如
“key2\”


使用诸如之类的工具来验证JSON是否正确。

您的示例不是有效的JSON,例如,每个键和值都应该用
包围,例如
{“k1”:“v1”}
,如果使用
转义
字符,则打开和关闭的花括号的数量必须匹配
您必须添加另一个
字符,例如
“key2\”


使用诸如验证您的JSON是否正确的工具。

它是您所写的固定结构,还是您正在寻找一个通用解决方案?通用解决方案,假设我们不知道这些结构…它是您所写的固定结构,还是您正在寻找一个通用解决方案?通用解决方案,假设我们不知道str结构。。。
MyDynamicJsonObject.key2.Item(0)