在字符串中查找字符串,然后根据该字符串查找另一行

时间:2015-11-11 15:06:15

标签: c# json string search

我认为这个标题非常令人困惑,所以这就是正在发生的事情。下面是我读入TextBox的JSON片段。我目前正在使用VS 2012 Express中的C#进行编码。

      "activityStatus" : "Scheduled Enabled",
      "filterCategory2" : "Position1",
      "filterCategory3" : "RESUPPLY/OUTFIT",
      "origination" : "Company Name",
      "timeCritical" : false,
      "monitor" : false,
      "class" : "System",
      "annotationText" : "Install System Racks",

我想要做的是找到“filterCategory2”的每个实例:“Position1”在这个我用字符串导入的长JSON中。然后,无论程序找到“filterCategory2”:“Position1”,我都希望它能够进一步扫描“annotationText”:“安装系统机架”

现在,它并不总是说“安装系统机架”。它可能是不同的东西,但它总是会说“annotationText”,它总是“filterCategory2”:“Position1”。我想拉出“安装系统机架”并将其放在别处 - 例如文本框或word文档或其他。但我确实希望捕获每个事件。因此可能会在某一点上出现“安装系统机架”,然后在另一点上“解耦配对适配器”,等等。

我对C#很新(昨天刚开始:P)。我想自己解决这个问题,所以我不是在寻找代码,因为我正在寻找指导(尽管如果它有助于指导我使用代码片段,请随意!)。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

使用more likely to get an exception thrown for an incorrect compareTo method if the input array or list has a large number of elements等网站为您的代码生成C#类。虽然这取决于您获取的JSON信息的配置方式。

使用来自nuget的JSON解析器库(如JSON.NET)来解析文件。

我不确定你的意思是什么“......我希望它能进一步向前扫描......”

答案 1 :(得分:0)

我同意Jake,将你的Jason序列化为一个对象,然后只需检查该对象以获取所需的信息(例如,如果你将Jason序列化为myObject):

if(myObject.FilterCategory2 == "Position1" && myObject.AnnotationText == "Install System Racks")
{
    // Do your thing with myObject.AnnotationText
}