比方说,我有一个文件sample.json
,其中包含一个如下所示的对象数组。使用Streaming API和Json解析器进行JSON解析 - 混合模式
[ {Name: "ABC", "email" : "[email protected]", "city" : "NewYork"}, {Name: "XYZ", "email" : "[email protected]", "city" : "NewJersey"}]
我正在使用TestNG框架和GSON库来解析JSON。
下面是我想要解析JSON对象的类。我的目标是通过数组中的名称过滤对象并仅返回该对象。 我正在使用Streaming API来避免一次出现在json文件中的所有数据。
public class JSON{
private JsonObject jsonObject;
@Test
public void readJSON(){
getJSONObject("C:\\..\\sample.json", "ABC");
readData("email");
}
public JsonObject getJSONObject(fileName, Name){
JsonReader jsonReader = new JsonReader(new FileReader(fileName));
jsonReader.beginArray();
while (jsonReader.hasNext()){
str = jsonReader.nextString();
If (str.equals(Name)){
System.out.println("Found Name");
// To get the object - we can use fromJson(jsonReader, Person.class),
// where Person.class defines all the json variables as class variables.
// But I want to use JsonParser or something like that to return just this object which has the Name "ABC"
}
}
} }
原因,我不希望创建一个Person类,并使用fromJSON因为我使用此功能对不同类型的JSON字符串。所以我不喜欢为不同的字符串创建不同的类。我想使用其他的东西,只是返回所需的对象。另外我不确定如何使用Streaming API方法的hasNext()遍历数组来查找所需的对象。
任何输入赞赏。谢谢。
http://stackoverflow.com/questions/23698415/how-to-filter-json-array-in-c-sharp – Nothing