json的名称 - 值对字符串

时间:2010-07-16 21:13:49

标签: asp.net json.net

尝试使用Newtonsoft.Json从str1 = X& str2 = Y中获取对象

获取:“解析值时遇到意外的字符:s。第1行,第1位。”

我希望这可以起作用吗?

public class MyTest 
{
    public string str1 { get; set; }
    public string str2 { get; set; }
}

public MyTest GetJson()
{
        data = "str1=X&str2=Y";
        JsonSerializerSettings jss = new JsonSerializerSettings();
        jss.MissingMemberHandling = MissingMemberHandling.Error;
        jss.ObjectCreationHandling = ObjectCreationHandling.Reuse;
        MyTest myTest = JsonConvert.DeserializeObject<MyTest>(data, jss);
}

2 个答案:

答案 0 :(得分:3)

是的,你离开了。 json看起来更像是这样:

{"str1":"x","str2":"y"}

有关更多信息,请访问www.json.org。

修改

将查询字符串转换为json:

var queryString = "str1=X&str2=Y";
var queryParams = HttpUtility.ParseQueryString(queryString);

var jsonObject = new JObject(from k in queryParams.AllKeys 
                             select new JProperty(k, queryParams[k]));

将json字符串转换为对象:

MyTest test = JsonConvert.DeserializeObject<MyTest>(jsonObject.ToString());

将对象转换为json:

var test = JsonConvert.SerializeObject( new MyTest{str1 = "X", str2 = "Y"});

答案 1 :(得分:2)

这是一个查询字符串,而不是JSON字符串 您可以使用HttpUtility.ParseQueryString解析它,它会返回NameValueCollection