我有一个由以下代码构造的json字符串:
toString
,当我对其进行序列化或反序列化时,没有错误。 json 字符串如下:
<?php
/**
* @param bool $should_index
* @param WP_Post $post
*
* @return bool
*/
function exclude_post_types( $should_index, WP_Post $post )
{
// Add all post types you don't want to make searchable.
$excluded_post_types = array( 'page' );
if ( false === $should_index ) {
return false;
}
return ! in_array( $post->post_type, $excluded_post_types, true );
}
add_filter( 'test_should_index_searchable_post', 'exclude_post_types', 10, 2 );
然后我将字符串 json 传递给* .exe文件并反序列化。 exe收到的字符串如下,通过后已更改:
string path1 = "C:\\Program Files (x86)\\IMAGE\\model\\net.mat";
string path2 = "C:\\Program Files (x86)\\IMAGE\\png\\Lab.png";
string path3 = "D:\\temp\\";
string[] strs={path1 ,path2 ,path3};
string json = JsonConvert.SerializeObject(strs);
Console.WriteLine(json);
List<string> paths = JsonConvert.DeserializeObject<List<string>>(json);
Console.WriteLine(paths.Count);
然后当我使用以下代码对其进行反序列化时,会出现错误。代码如下:
"[\"C:\\\\Program Files (x86)\\\\IMAGE\\\\model\\\\net.mat\",\"C:\\\\Program Files (x86)\\\\IMAGE\\\\png\\\\Lab.png\",\"D:\\\\temp\\\\\"]"
错误是:
未处理的JsonReaderException:解析值时遇到意外的字符:C.路径”,第1行,位置2。
我想知道为什么会这样。谢谢。
答案 0 :(得分:0)
您必须在路径两边加上单引号。
string json =“ ['C:\\ Program Files(x86)\\ IMAGEDL \\ model \\ net-e-100.mat',C:\\ Program Files(x86)\\ IMAGEDL \\ Labelpng \\ Lab.png,D:\\ temp \\]“;