【问题标题】:How to format a ReturnString Array from a webService如何格式化来自 Web 服务的返回字符串数组
【发布时间】: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

【问题讨论】:

    标签: iphone ios objective-c json web-services


    【解决方案1】:

    您可以通过以下方法获取数据,

     id Data = [NSJSONSerialization JSONObjectWithData:fetchedData options:kNilOptions   error:&error];
    

    然后您可以相应地循环数据。以您为例,

    for(id object in Data)
    {
       NSLog(@"%@",[object valueForKey:@"nummer"]);
       NSLog(@"%@",[object valueForKey:@"anmerkung"]);
    }
    

    上面使用的循环是快速枚举类型。希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      使用以下代码从可变数组中获取 nummeranmerkung 的所有值。

      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 参考答案
      猜你喜欢
      • 2015-10-26
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多