我在Facebook图表中输入了朋友列表,我希望将其作为参数发送到我的UIWebView
中的javascript函数。
我的问题是我无法将回复(AnyObject
/ NSDictionary
)变为普通简单String
。
在这个例子中,我希望将完整的响应作为字符串发送到JavaScript方法,我将在内部使用。
(目前我得到一个空的String
并且我到目前为止所做的每一次尝试都失败了)
let graphFriendsRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me/friends", parameters: nil)
graphFriendsRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
if ((error) != nil)
{
// Process error
println("Error: \(error)")
}
else
{
println("fetched friends: \(result)")
let data:NSDictionary=result as! NSDictionary
var jsmethod = NSString(format:"setusers('%@')",data) as String
self.webView.stringByEvaluatingJavaScriptFromString(jsmethod)
}
})
答案 0 :(得分:0)
按照你在评论中所说的,我认为你应该生成JSON而不是操纵字符串本身。
您在Swift应用程序中收到JSON,并且您希望在JavaScript中使用JSON:无需使用" clean"字符串。
if OBJECT_ID('tempdb..#pairs') is not null drop table #pairs
if OBJECT_ID('tempdb..#pairs_final') is not null drop table #pairs_final
create table #pairs(pair_no int, a_no varchar(17),a_no2 varchar(17))
create table #pairs_final(pair_no int Identity(1,1), a_no varchar(17),a_no2 varchar(17))
insert into #PAIRS values(1,'1234ABCD','5678EFGH');
insert into #PAIRS values(1,'1234ABCD','XXXX9999');
insert into #PAIRS values(2,'0000AAAA','1111BBBB');
insert into #PAIRS values(3,'5678EFGH','1234ABCD');
insert into #PAIRS values(4,'1111BBBB','0000AAAA');
insert into #PAIRS values(1,'XXXX9999','1234ABCD');
insert into #pairs_final
select a.a_no,a.a_no2 from #pairs a
join (
select distinct a_no_p from(
select pair_no,a_no_p,
ROW_NUMBER() over (partition by pair_no order by a_no_p) as RN
from #pairs
unpivot(
a_no_p for clms in (a_no2,a_no)
) as umpvt
) as mypairs
where RN = 1
) as my_pairs on my_pairs.a_no_p=a.a_no
select * from #pairs_final
然后将这个真正的JSON发送到您的JavaScript。
修改强>
您是否正在谈论像URL和空格一样清理字符串?如果是,你可以这样做(许多选项):
pair_no a_no a_no2
1 1234ABCD 5678EFGH
2 1234ABCD XXXX9999
3 0000AAAA 1111BBBB