2015-02-03 4 views
0

다음과 같은 문제가 있습니다. play2를 사용하여 서버에서 jsonString을 수신합니다. 신속하게이 jsonString을 jsonDictionary로 변환합니다. jsonString에 jsonDocument가 하나만 포함되어 있으면 다음 코드와 같이 변환 할 수 있습니다. json으로 문자열 일 doesnt't 이상의 JSON 문서를 포함하는 경우 스위프트 :받은 문자열을 json으로 변환하는 방법

let data=self.recvJsonString?.dataUsingEncoding(NSUTF8StringEncoding) 
var jsonDict=NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers, error: &error) as NSDictionary 

그러나

는 : 스위프트의

recieved Data: 
({"_id":{"$oid":"54cfc217dd99a083af6c3a54"},"kind":"photo","username":"gokn2","article":"das ist ein Test2","datetime":"31.12.2015 22:22:10","city":"Berlin","latitude":"52.00","longitude":"12.02","startdate":"12:00:00","enddate":"12:00:00","binary":"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAABxpRE9UAAAAAgAAAAAAAAAKAAAAKAAAAAoAAAAKAAACm4NU0j0AAAJnSURBVDgRbJLdS1NxGMdXl9IfEUQ3XdVNRBAF3UaCWEYvFAgiCV6kJJrURGuI5WtTpjCXL9lM3atzmzo1Z5tbO2XuLbep29nbOWfnOGka1MW3fr+gBP3Bw+/HA8/n+X5/zyOTHXH07kzR+1W+zOzjRu0r8djiXKhgtwUL6kl/tFrFjF1pdJSdvD1+4ojSwylPdLeECfGxxLwPQtdbSG1vID3thVjRgt36bkgKNZiOSTSpXFtnK6dLDxMOZMTvP1uzkSQkq5NGpvolhLEZSN51ZCoVEJ0+kBxpUmjqw1y3EZcf29oPIP4/9378ai1kOAjjdgg6B3a2WQiGRYgaA/KDBoiP2sHJVcjU9VBw4mI58iU1YNQzh6HEZo7lqRJeY0S2bQiScRH5ETO2BvTwqKbh6rdgo3kQQm0nVUvARDlRam3X4fR90w0qz7TKF335JiQl8xLtTNSJr98hqTFhzPwVdcNrKO/xoKrfh5apIGYdQWzXdiP9oAn88DQS5+5BulSOJ0pnlg5qysvdZFfW6QAE8wcQcFq3gD5LGPIhBs1DPqiMARidUdjcm2CiHNKFfQj1PWCvPkT2hZoOyiXX4EyV8Y6MrMbOxCwkJghil0zUMB+CdiECy8dNuP0sYn++I54SEIlz+BRKYWo5BsusH+nrNcjZXeCVWnAVz1HaPD8hI3uWa+wF1zFKLRB4gBUphM3k6L22kaYQpd6P+gEvrjXM4VaHB4EGFUhtsrj2r+0uR0JmsoX3yI6RJOmYMi0jmS/gczhFbaqtYQq5q1hCiXzhXzRoA7A9G0Hq2HlsHb+A3KlivOqy7/8GAAD//5+9LFkAAAJkSURBVHWSS0wTYRDHN5z17tHoRT0YuZF4UA4a44uEoGB5+EiIGKogNpUWpDyUCk1bWFyVGpCgQksI1EYpFNwG3FiV2hLCo4bGFWhh26UNhcr1b7/PYMDETWZ3vnwzv/nPzDJW+/RWXKFF+NxdrJ4uhccyhFcTIjQvJnGb/YQC/ThyG9y42jSB2m4fWgdn4BCCCEQ3EOAGIKZlQNybibWDWTC2urYY1jr1gwCX0gsp8HvzG5R1+imk7IkHja994Owz4L0/4Q+EsbAYoTYnbyJeb4G47yyFxtMVqGrll5g77b5eWdUC6X4bYsI3REofY5SfQ+dwgEK882EshmVqvpRvcy9QlVyPF7EzSkTarDRXSom63Dg2yJys5nO9nB3xmqdYc3kgNXbSyqH1JGaXY/g4tURbJCqLjQIu1I1D2eFH8MZDyJqUCM80jf9ssOLwTUchs1/Rt6eKE6REcT2iHfY/FYt0ECtaMPllAVrbLPLMX5FR6UZmnQAdJyCoNGKtksXyKSVCWSokruugNo3JhMWQ51jJ+xzXy1GQOaxcq4Nk6MZqiR7S+XLMl7MY03ZRIz5pU0oVlHudiHY5aI7TOIBDt97mUdj264R6xDTZ1INNtZmqDBXUQO5z0ZnK2SrEKkxYuXgPkef9kN9NUHUbZc0g4zqudrLbnF1fAnVanFjPTiUevYIoZ0N8WIBU/QyR2nb6JxCfFEgUPcCQ3kZhB/JtabtAOw9EusrMh8iQycYTGpa2lTR3gygi2yR3JOZIqSN/Z+5/fTJcEpzT8KFf0zwiGkwjSYPe8Yv4lx7x/WSbfxfwD+U3jf3fV9sI+agAAAAASUVORK5CYII="}) 

코드

("{\"_id\":{\"$oid\":\"54cfd810dd99a083af6c3a5b\"},\"kind\":\"article\",\"username\":\"gokn1\",\"article\":\"das ist ein Test1\",\"datetime\":\"31.12.2015 22:22:10\",\"city\":\"Berlin\",\"latitude\":\"51.00\",\"longitude\":\"11.00\",\"startdate\":\"11:00:00\",\"enddate\":\"11:00:00\",\"binary\":\"\"}", 
"{\"_id\":{\"$oid\":\"54cfc217dd99a083af6c3a54\"},\"kind\":\"photo\",\"username\":\"gokn2\",\"article\":\"das ist ein Test2\",\"datetime\":\"31.12.2015 22:22:10\",\"city\":\"Berlin\",\"latitude\":\"52.00\",\"longitude\":\"12.02\",\"startdate\":\"12:00:00\",\"enddate\":\"12:00:00\",\"binary\":\"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAABxpRE9UAAAAAgAAAAAAAAAKAAAAKAAAAAoAAAAKAAACm4NU0j0AAAJnSURBVDgRbJLdS1NxGMdXl9IfEUQ3XdVNRBAF3UaCWEYvFAgiCV6kJJrURGuI5WtTpjCXL9lM3atzmzo1Z5tbO2XuLbep29nbOWfnOGka1MW3fr+gBP3Bw+/HA8/n+X5/zyOTHXH07kzR+1W+zOzjRu0r8djiXKhgtwUL6kl/tFrFjF1pdJSdvD1+4ojSwylPdLeECfGxxLwPQtdbSG1vID3thVjRgt36bkgKNZiOSTSpXFtnK6dLDxMOZMTvP1uzkSQkq5NGpvolhLEZSN51ZCoVEJ0+kBxpUmjqw1y3EZcf29oPIP4/9378ai1kOAjjdgg6B3a2WQiGRYgaA/KDBoiP2sHJVcjU9VBw4mI58iU1YNQzh6HEZo7lqRJeY0S2bQiScRH5ETO2BvTwqKbh6rdgo3kQQm0nVUvARDlRam3X4fR90w0qz7TKF335JiQl8xLtTNSJr98hqTFhzPwVdcNrKO/xoKrfh5apIGYdQWzXdiP9oAn88DQS5+5BulSOJ0pnlg5qysvdZFfW6QAE8wcQcFq3gD5LGPIhBs1DPqiMARidUdjcm2CiHNKFfQj1PWCvPkT2hZoOyiXX4EyV8Y6MrMbOxCwkJghil0zUMB+CdiECy8dNuP0sYn++I54SEIlz+BRKYWo5BsusH+nrNcjZXeCVWnAVz1HaPD8hI3uWa+wF1zFKLRB4gBUphM3k6L22kaYQpd6P+gEvrjXM4VaHB4EGFUhtsrj2r+0uR0JmsoX3yI6RJOmYMi0jmS/gczhFbaqtYQq5q1hCiXzhXzRoA7A9G0Hq2HlsHb+A3KlivOqy7/8GAAD//5+9LFkAAAJkSURBVHWSS0wTYRDHN5z17tHoRT0YuZF4UA4a44uEoGB5+EiIGKogNpUWpDyUCk1bWFyVGpCgQksI1EYpFNwG3FiV2hLCo4bGFWhh26UNhcr1b7/PYMDETWZ3vnwzv/nPzDJW+/RWXKFF+NxdrJ4uhccyhFcTIjQvJnGb/YQC/ThyG9y42jSB2m4fWgdn4BCCCEQ3EOAGIKZlQNybibWDWTC2urYY1jr1gwCX0gsp8HvzG5R1+imk7IkHja994Owz4L0/4Q+EsbAYoTYnbyJeb4G47yyFxtMVqGrll5g77b5eWdUC6X4bYsI3REofY5SfQ+dwgEK882EshmVqvpRvcy9QlVyPF7EzSkTarDRXSom63Dg2yJys5nO9nB3xmqdYc3kgNXbSyqH1JGaXY/g4tURbJCqLjQIu1I1D2eFH8MZDyJqUCM80jf9ssOLwTUchs1/Rt6eKE6REcT2iHfY/FYt0ECtaMPllAVrbLPLMX5FR6UZmnQAdJyCoNGKtksXyKSVCWSokruugNo3JhMWQ51jJ+xzXy1GQOaxcq4Nk6MZqiR7S+XLMl7MY03ZRIz5pU0oVlHudiHY5aI7TOIBDt97mUdj264R6xDTZ1INNtZmqDBXUQO5z0ZnK2SrEKkxYuXgPkef9kN9NUHUbZc0g4zqudrLbnF1fAnVanFjPTiUevYIoZ0N8WIBU/QyR2nb6JxCfFEgUPcCQ3kZhB/JtabtAOw9EusrMh8iQycYTGpa2lTR3gygi2yR3JOZIqSN/Z+5/fTJcEpzT8KFf0zwiGkwjSYPe8Yv4lx7x/WSbfxfwD+U3jf3fV9sI+agAAAAASUVORK5CYII=\"}" 

를)

는 내가 보인다 먼저 jsons를 분할해야합니다. 하지만 어떻게해야합니까? 누구든지이 문제를 해결할 수 있습니다.

감사

+0

왜 json 배열로 여러 json 문서를 포장하지 않습니까? – findall

+0

Play와 어떤 관련이 있습니까? – Ryan

+0

Tahnks @findall. 이것은 내 문제를 해결했다. – masterWN

답변

1

두 번째 예는 유효한 JSON 문자열이 아닙니다. jsonlint.com을 사용하여 JSON 문자열의 유효성을 검사하십시오. 주의 깊게보십시오 ... 이들은 실제로 두 개의 문자열입니다.

큰 따옴표는 문자열의 경계를 표시합니다.

"{ \"val1\" : \"string1" }", "{ \"val1\" : \"String2\" }" 

그래서 ... 그것을 하나의 JSON 문자열로 변경하십시오.

"{ \"val1\" : \"string1" }, { \"val1\" : \"String2\" }" 
관련 문제