-1

次の文字列があります。しかし、私はこの「jsonp1343930692」でそれらを分離し、それらをNSString再度割り当てる必要があります。どうすればいいですか?それらをに分離することはできましたNSArrayが、に分離する方法がわかりませんNSString

jsonp1343930692("snapshot":[{"timestamp":1349143800,"data":[{"label_id":10,"lat":29.7161,"lng":-95.3906,"attr":{"ozone_level":37,"exp":"IN","gridpoint":"29.72:-95.39"}},{"label_id":10,"lat":30.168456,"lng":-95.50448}]}]})
jsonp1343930692("snapshot":[{"timestamp":1349144700,"data":[{"label_id":10,"lat":29.7161,"lng":-95.3906,"attr":{"ozone_level":37,"exp":"IN","gridpoint":"29.72:-95.39"}},{"label_id":10,"lat":30.168456,"lng":-95.50448,"attr":{"ozone_level":57,"exp":"IN","gridpoint":"30.17:-95.5"}},{"label_id":10,"lat":29.036944,"lng":-95.438333}]}]})
4

2 に答える 2

1

NSJSONSerializationクラスを見て、これを処理できるCocoaコレクションに変換してください。

于 2012-10-02T12:04:08.343 に答える
1

文字列のjsonp1343930692プレフィックスが奇妙です。文字列がどこから来たのかわかりませんが、実際には、この奇妙なプレフィックスを持つJSON文字列のようで、そこに存在する理由はありません。ここでのベストショットは、おそらくこのプレフィックスが正常かどうかを確認することです。たとえば、WebServiceからこの文字列を取得した場合、この奇数のプレフィックスを返すのはおそらくWebServiceの障害です。

jsonp1343930692とにかく、文字列のプレフィックスを削除したい場合は、複数のオプションがあります。

  • プレフィックスが存在することを確認し、存在する場合は、元の文字列から正しい文字数を削除します。

    NSString* str = ... // your string with the "jsonp1343930692" prefix
    static NSString* kStringToRemove = @"jsonp1343930692";
    if ([str hasPrefix:kStringToRemove])
    {
      // rebuilt a string by only using the substring after the prefix
      str = [str substringFromIndex:kStringToRemove.length];
    }
    
  • jsonp1343930692文字列を区切り文字として使用して、文字列を複数の部分に分割します

    NSString* str = ... // your string with the "jsonp1343930692" prefix
    static NSString* kStringToRemove = @"jsonp1343930692";
    NSArray* parts = [str componentsSeparatedByString:kStringToRemove];
    str = [parts componentsJoinedByString:@""];
    
  • のすべての出現箇所をjsonp1343930692空の文字列に置き換えます。

    NSString* str = ... // your string with the "jsonp1343930692" prefix
    static NSString* kStringToRemove = @"jsonp1343930692";
    str = [str stringByReplacingOccurrencesOfString:kStringToRemove withString:@""];
    

つまり、正確に何をしたいかに応じて、多くの可能性があります:)

もちろん、奇妙なjsonp1343930692プレフィックスを削除したら、JSON文字列を逆シリアル化してJSONオブジェクトを取得できます(iOS5以降のようなサードパーティのライブラリを使用するか、iOS5以降で使用するなどSBJSONNSJSONSerializer

于 2012-10-02T12:10:58.157 に答える