簡體   English   中英

iOS:在NSString中放置NSArray

[英]iOS:Placing NSArray in NSString

我正在做與將數據發送到服務器有關的應用程序,並且我有一個值數組,當我打印該數組時,我得到了如下所示的代碼輸出

  NSArray *dataarray=[NSArray   
     arrayWithObjects:@"2",@"10",@"1",@"4",@"2",@"8",@"2",@"6",@"25",@"11",@"17",@"10",nil];

NSMutableArray *arr=[[NSMutableArray alloc]init];


for (int i=0; i<[dataarray count]; i++)
{
    NSString *stringvar=[dataarray objectAtIndex:i];
    NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:stringvar,@"x",nil];
    NSArray *ar1=[NSArray arrayWithObject:dic];
    [arr addObject:ar1];

}

當我打印“ arr”時,結果如下。

  [[{"x":"2"}],[{"x":"10"}],[{"x":"1"}],[{"x":"4"}],[{"x":"2"}],
  [{"x":"8"}],[{"x":"2"}],[{"x":"6"}],[{"x":"25"}],[{"x":"11"}],[{"x":"17"}]

但是根據我的要求,我需要整個字符串數組,即像這樣用雙引號引起來

  "[[{"x":"2"}],[{"x":"10"}],[{"x":"1"}],[{"x":"4"}],[{"x":"2"}],
  [{"x":"8"}],[{"x":"2"}],[{"x":"6"}],[{"x":"25"}],[{"x":"11"}], [{"x":"17"}]"

我試圖將數組保持在字符串中,但通過在字符串中提供arr如下所示給了我不同的括號

 NSString *stringvalue=[NSString stringWithFormat:@"%@",arr];

它給了我錯誤的數據,即括號“(”為

"(\n(\n {\nx = 2;\n }\n ),\n(\n {\nx = 10;\n }\n),\n (\n                  
{\n x = 1;\n }\n ),\n(\n {\n x = 4;\n }\n    ),\n (\n{\nx = 2;\n}\n  
),\n (\n {\n x = 8;\n }\n),\n  (\n {\n  x = 2;\n }\n),\n (\n{\n x =  
6;\n }\n ),\n(\n{\n x = 25;\n}\n),\n (\n {\nx = 11;\n }\n),\n (\n               
{\nx = 17;\n }\n ),\n(\n  {\nx = 10;\n}\n)\n)"

但是我不需要上述結果中的“(”類括號。請幫助我如何更改此格式。

實際上,您需要一個JSON數組,因此請使用json序列化:

NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM