iOS:Placing 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];
我正在做与向服务器发送数据相关的应用程序,我有值数组,当我打印该数组时,我得到如下代码的输出
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];