我认为这个标题非常令人困惑,所以这就是正在发生的事情。下面是我读入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)。我想自己解决这个问题,所以我不是在寻找代码,因为我正在寻找指导(尽管如果它有助于指导我使用代码片段,请随意!)。
感谢您的帮助。
答案 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
}