0

私は次のような同じ場所の位置を表す簡単なjsonを書いています:

{
        lat = "41.653048";
        long = "-0.880677";
        name = LIMPIA;
    },

iPhoneプログラミングでは、私のアプリは地図上に位置を表示することができます。私の質問は、複数の位置で同じものをどのように複製するかについてです。たとえば、次のようなjsonを使用します。

    {
    lat = "41.653048";
    long = "-0.890677";
    name = name1 ;
},

    {
    lat = "41.653048";
    long = "-0.890677";
    name = name2;
},

アイテムの数を知るにはどうすればよいですか?表現に何か他のものを追加してjsonを変更する必要がありますか?それとも完全に変更する必要がありますか?

4

3 に答える 3

1

JSON 配列を使用する必要があります。

[
  {
    lat = "41.653048";
    long = "-0.890677";
    name = name1 ;
  },
  {
    lat = "41.653048";
    long = "-0.890677";
    name = name2;
  },
]
于 2012-05-11T19:26:27.950 に答える
0

私はあなたの質問を理解しているかどうかわかりませんが、1 つの JSON オブジェクトに複数のポイントを最適に含める方法を知りたいと思われますか?

{ 
  "locations": 
   [ 
      {
        lat = "41.653048";
        long = "-0.890677";
        name = name1 ;

      }, 
      {
        lat = "41.653048";
        long = "-0.890677";
        name = name2;

      }
   ] 
}
于 2012-05-11T19:27:27.043 に答える
0

オブジェクトとの間で JSON を解析または書き込むつもりかどうかはわかりません。両方を概説します。

@interface MyPointModel : NSObject

@property (nonatomic, strong) NSNumber *latitude;
@property (nonatomic, strong) NSNumber *longitude;
@property (nonatomic, strong) NSString *name;

@end

@implementation MyPointModel

@synthesize latitude, longitude, name;

@end

解析中

(そして、解析を行う場所はどこでも)

@implementation ParsingController

...
- (NSArray *)buildArrayOfMyPointModelWithString:(NSString *)json {

    NSArray *array = [jsonParser.objectWithString:json error:NULL];
    NSMutableArray *arrayOfMyPointModel = [[NSMutableArray alloc] init];

    for (id jsonElement in array) {
        MyPointModel *m = [[MyPointModel alloc] init];

        m.latitude = [jsonElement valueForKey:@"lat"];
        m.longitude = [jsonElement valueForKey:@"long"];
        m.name = [jsonElement valueForKey:@"name"];

        [arrayOfMyPointModel addObject:m];
    }

    return (NSArray *)arrayOfMyPointModel;
}

書き込み

(私のポイントのサンプル配列)

NSMutableArray *a = [[NSMutableArray alloc] init];
MyPointModel *m1 = [[MyPointModel alloc] init];
MyPointModel *m2 = [[MyPointModel alloc] init];
m1.latitude = [NSNumber numberWithDouble:0.1];
m1.longitude = [NSNumber numberWithDouble:0.01];
m1.name = @"M1";
m2.latitude = [NSNumber numberWithDouble:0.2];
m2.longitude = [NSNumber numberWithDouble:0.02];
m2.name = @"M2";
[a addObject:m1];
[a addObject:m2];

- (NSString *)buildJsonStringWithMyPointModelArray:(NSArray *)array {

    SBJsonWriter *writer = [[SBJsonWriter alloc] init];

    return [writer stringWithObject:array];
}
于 2012-05-11T19:27:27.770 に答える