解析值时遇到意外字符:C.路径”,第1行,位置2

时间:2018-11-20 08:59:23

标签: json.net exe

我有一个由以下代码构造的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。

我想知道为什么会这样。谢谢。

1 个答案:

答案 0 :(得分:0)

您必须在路径两边加上单引号。

string json =“ ['C:\\ Program Files(x86)\\ IMAGEDL \\ model \\ net-e-100.mat',C:\\ Program Files(x86)\\ IMAGEDL \\ Labelpng \\ Lab.png,D:\\ temp \\]“;