如何格式化来自 Web 服务的返回字符串数组
Posted
技术标签:
【中文标题】如何格式化来自 Web 服务的返回字符串数组【英文标题】:How to format a ReturnString Array from a webService 【发布时间】:2013-07-31 05:16:02 【问题描述】:我从 ios 中的 WebService 获得了一个 returnString:
[
"datum":"2013-07-24
09:38:43","nummer":"1017348010239480212208","anmerkung":"Elektronische
Auftragsdaten wurden vom Versender
\u00fcbermittelt","datum":"2013-07-24
09:38:44","nummer":"1017348010239480212208","anmerkung":"Sendung in
Verteilung","datum":"2013-07-24
09:38:44","nummer":"1017348010239480212208","anmerkung":"Sendung in
Verteilung","datum":"2013-07-24
09:38:44","nummer":"1017348010239480212208","anmerkung":"Sendung in
Zustellung","datum":"2013-07-24
09:26:06","nummer":"1017348010239480212208","anmerkung":"Empf\u00e4nger
nicht angetroffen - benachrichtigt","datum":"2013-07-19
06:24:42","nummer":"1017348010239480212208","anmerkung":"Sendung in
Post-Empfangsbox eingelangt"
]
Objective C 代码运行良好:
#import "SBJson.h"
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
self.textfeld.text = [NSString stringWithFormat: @"%@", returnString];
我尝试使用 NSMutableArray 或 NSArray 和 JSONValue 格式化响应,但没有成功:
NSMutableArray *meinErgebnis = [responseString JSONValue];
NSLog(@"%@",[[meinErgebnis objectAtIndex:0] objectAtIndex:1]);
如何像这样格式化 returnCode?strong>
Nummer: 1017348010239480212208
Anmerkung: Sendung in Verteilung
Nummer: 1017348010239480212208
Anmerkung: Sendung in Post-Empfangsbox
【问题讨论】:
【参考方案1】:您可以通过以下方法获取数据,
id Data = [NSJSONSerialization JSONObjectWithData:fetchedData options:kNilOptions error:&error];
然后您可以相应地循环数据。以您为例,
for(id object in Data)
NSLog(@"%@",[object valueForKey:@"nummer"]);
NSLog(@"%@",[object valueForKey:@"anmerkung"]);
上面使用的循环是快速枚举类型。希望这会有所帮助。
【讨论】:
【参考方案2】:使用以下代码从可变数组中获取 nummer 和 anmerkung 的所有值。
NSMutableArray *meinErgebnis = [responseString JSONValue];
for(int i = 0; i < meinErgebnis.count; i++)
NSLog(@"%@",[[meinErgebnis objectAtIndex:i] objectForKey:@"nummer"]);
NSLog(@"%@",[[meinErgebnis objectAtIndex:i] objectForKey:@"anmerkung"]);
【讨论】:
@ArunThiru :快速枚举?怎么样? @LithuT.V 每个循环不过是快速枚举 您能详细说明一下吗?我不明白你想说什么 @LithuT.V 参考答案以上是关于如何格式化来自 Web 服务的返回字符串数组的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 nsdateformatter 将 nsdate 转换为另一种格式