0

我尝试分割文本并将其放入字典中,问题是我的文本没有清晰的结构:文本:

{
   "about": "where I'm meant to be...",
   "bio": "Visit my official blog at:\n\nhttp://ABC.com/  \n\nAdd me on Twitter:\n\nhttp://www.ABC.com/ABC",
   "category": "Public figure",
   "is_published": true,
   "location": {
      "street": "",
      "city": "Los Angeles",
      "state": "CA",
      "country": "United States",
      "zip": ""
   },
   "talking_about_count": 254637,
   "username": "ABC",
   "website": "http://kimkardashian.celebuzz.com/\nhttp://www.twitter.com/kimkardashian\n",
   "were_here_count": 0,
   "id": "114696805612",
   "name": "ABC",
   "link": "http://www.ABC.com/ABC",
   "likes": 0,
   "cover": {
      "cover_id": "000000000",
      "source": "http://ABC.jpg",
      "offset_y": 0,
      "offset_x": 200
   }
}

如您所见,我将“,”作为分隔符,问题是有一些组合对象,例如:

"location": {
      "street": "",
      "city": "Los Angeles",
      "state": "CA",
      "country": "United States",
      "zip": ""
   },

这就是为什么我不能使用string.Split(' '); 我听说过的正则表达式但我不知道如何使用它们是否有任何解决方案可以将这些信息分离到字典或任何其他结构中

4

2 回答 2

1

您的数据采用标准格式 (JSON),并且已经为它编写了解析器。您可以通过 Visual Studio 中的 NuGet 轻松下载 Json.NET。

正则表达式是一个强大的工具,它使模式匹配变得更加简单。对我来说,这就是他们所能做到的。它们用于创建解析器和各种其他东西,但它很复杂。

因此,您可以使用正则表达式创建自己的 JSON 解析器,但这会花费很多时间。这就像在有可用钥匙时建造一个开锁器。

于 2013-10-10T17:01:32.333 回答
0

JavaScriptSerializer 可以满足你的需求

using System.Web.Script.Serialization;
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<Dictionary<string,string>>(jsonText);
Console.WriteLine(dict["some_number"]);

请参阅:http: //msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

于 2013-10-10T17:00:06.993 回答