string s="{"size":15,"query":{"match":{"data.query.match.promotionInfo.query":{"boost":1.3,"type":"phrase","query":"销售1"}}}}";
var o = JsonConvert.DeserializeObject<dynamic>(s);
//data.query.match.promotionInfo.query 需处理掉 "."
什么意思?那就你的源字符串里面没有这东西呗?我虽然不知道nowtonjson是不是可以这么做,但基本上的一个原则是,不要手动拼json字符串。。。
这个json串是一个搜索功能,搜索时候生成的请求信息,我要记录搜索的日志,但是存储的时候,动态类型的某些字段中有特殊字符(data.query.match.promotionInfo.query),无法存储。
为什么要用那么奇怪的字符串做key
是个结构的地址。
@Mr. Hu: 不知道为什么要处理掉.
如果是要取值的话 可以这样
string str="{\"size\":15,\"query\":{\"match\":{\"data.query.match.promotionInfo.query\":{\"boost\":1.3,\"type\":\"phrase\",\"query\":\"销售1\"}}}}"; var obj = JObject.Parse(str); var boost = obj["query"]["match"]["data.query.match.promotionInfo.query"]["boost"].ToString();