我正在開發Android和iPhone的應用程序,我在iPhone上有一個問題編組和解組。使用Android很容易,我使用Jackson JSON解析器,並且有大量的在線教程使其易於使用。JSON編組和解組與SBJSON
在iPhone上,我使用的是SBJSON解析器,但是似乎真正缺乏有關如何有效使用它的信息。
看看下面的一塊JSON
{
"data":{
"name":[
{
"fName":"John",
"lName":"Doe"
},
{
"fName":"Jane",
"lName":"Doe"
}
]
}
}
如果我是使用Java和JSON傑克遜分析器的,這很容易。我會成立一個類像
public class Parse {
private Data data;
//獲取數據類數據集類
然後
public class Data {
private List<Name> name;
//get set name list
然後在類名
public class Name {
private String fName;
private String lName;
//get setters here
這樣我把數據分成一組對象,這樣我就可以檢索我需要的數據,如果需要的話,我可以更新JSON,th恩再次寫出來到一個新的JSON文件,美觀大方,操作簡單,即
ObjectMapper mapper = new ObjectMapper();
Parse test = mapper.readValue(new File("/Users/adam/Documents/JSON/list.json"),
Parse.class);
System.out.println(test.getData().getName().get(0).getfName());
或者我可以把它做
test.getData().getName().get(0).setfName("test");
我想知道的,是我怎麼做到這一點和Xcode使用SBJSON。我知道如何解析數據並將其打印出來,但是我希望能夠將它打印到一組對象中,進行更改,然後像JacksonJSON解析器那樣再次寫出它。我所做的是
NSString *file = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"json"];
NSData *Data = [NSData dataWithContentsOfFile:file];
NSString *jsonString = [[NSString alloc] initWithData:Data encoding:NSUTF8StringEncoding];
NSDictionary *dictionary = [jsonString JSONValue];
NSArray *name = [dictionary valueForKeyPath:@"data.name"];
NSLog(@"%@", name);
這將讓名字的數組,但我希望能夠訪問的第一個名字和姓氏的每個對象,然後更新它,如果我需要。然後再寫出來。
任何人都可以指出我在正確的方向。是否有可能做與傑克遜JSON和SBJSON一樣的事情?
因爲這不是XCode的問題而被重新標記。 – Almo 2012-03-16 13:27:59