在Swift中解析JSON数据(来自URL)(Parsing JSON data (from URL) in Swift)
我正试图通过JSON检索URL中的一些数据。 这是我的快速代码:
// get symbol asked let symbol = symbolField.text! // define URL let url = NSURL(string: "http://yahoojson.gobu.fr/symbol.php?symbol=\(symbol)")! let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in if let urlContent = data { do { let jsonResult = try NSJSONSerialization.JSONObjectWithData(urlContent, options: NSJSONReadingOptions.MutableContainers) print(jsonResult) } catch { print("Error JSON") } } } task.resume()
一切似乎都运行良好,但
"do-try-catch"
总是打印"Error JSON"
。 我的代码似乎无法将我的URL内容转换为实际的JSON。 知道我做错了什么吗?I'm trying to retrieve some data from an URL thanks to JSON. Here's my swift code:
// get symbol asked let symbol = symbolField.text! // define URL let url = NSURL(string: "http://yahoojson.gobu.fr/symbol.php?symbol=\(symbol)")! let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in if let urlContent = data { do { let jsonResult = try NSJSONSerialization.JSONObjectWithData(urlContent, options: NSJSONReadingOptions.MutableContainers) print(jsonResult) } catch { print("Error JSON") } } } task.resume()
Everything seems to work fine, but the
"do-try-catch"
always prints"Error JSON"
. My code seems unable to convert my URL content into actual JSON. Any idea what I am doing wrong?
原文:https://stackoverflow.com/questions/31893868
最满意答案
最后,我能够做到这一点。 我不知道它的完美解决方案和所有,但我做到了这一点。
对于每个有两个div的部分,一个用于过滤器按钮,第二个用于报告图块,我给出了唯一的类(过滤器div)和id(报告图块),并且在AJAX回调函数中我绑定了这样的代码
function SetSectionOneData() { var $container = $('#SectionOneReports'), // Report tiles holding container id. $controls = $('.cd-tab-filter'); // Filter button holding div $container.mixItUp({ animation: { duration: 700, effects: 'fade translateY(600%) stagger(35ms)', easing: 'cubic-bezier(0.86, 0, 0.07, 1)', reverseOut: true }, controls: { enable: false } }); $controls.on('click', '.filter', function () { var $btn = $(this), filter = $btn.attr('data-filter'); $btn.addClass('FltrBtn_active'); var btnId = $btn.attr('id'); if (btnId) { var productId = btnId.split('_')[1]; var linkId = btnId.split('_')[2]; $('*[id*=Filter_' + productId + ']:visible').each(function () { if ($(this).attr('id').split('_')[2] != linkId) { $(this).removeClass('FltrBtn_active'); } }); } $container.mixItUp('filter', 'none', function () { $container.mixItUp('filter', filter); }); });
}
如果有人发现有更好的/优化的解决方案,请告诉我。
无论如何,谢谢大家
Finally i was able to make it happen. I don't know its the perfect solution and all but i did it like this.
For each sections where there are two divs , one for filter buttons and second one for report tiles, i gave unique class ( filter div) and id ( report tiles) and in the AJAX call back function I binded the code like this
function SetSectionOneData() { var $container = $('#SectionOneReports'), // Report tiles holding container id. $controls = $('.cd-tab-filter'); // Filter button holding div $container.mixItUp({ animation: { duration: 700, effects: 'fade translateY(600%) stagger(35ms)', easing: 'cubic-bezier(0.86, 0, 0.07, 1)', reverseOut: true }, controls: { enable: false } }); $controls.on('click', '.filter', function () { var $btn = $(this), filter = $btn.attr('data-filter'); $btn.addClass('FltrBtn_active'); var btnId = $btn.attr('id'); if (btnId) { var productId = btnId.split('_')[1]; var linkId = btnId.split('_')[2]; $('*[id*=Filter_' + productId + ']:visible').each(function () { if ($(this).attr('id').split('_')[2] != linkId) { $(this).removeClass('FltrBtn_active'); } }); } $container.mixItUp('filter', 'none', function () { $container.mixItUp('filter', filter); }); });
}
If anyone finds that there is a better / optimized solution, please let me know.
Anyway thank you all
相关问答
更多-
我搜索了很多,2小时后在https://github.com/patrickkunka/mixitup/issues/149找到了解决方案 我想与其他人分享,所以他们不会花费我花费的时间。 解决方案是在添加新元素之前销毁整个mixItUp,然后重新加载mixItUp。 $('#mixItUpContainer').mixItUp('destroy'); var mixDiv = $('') .attr({ "data-myorder" : numberOfMixDIVs }) ...
-
目前没有任何事件处理程序附加到你的“x”按钮,所以如果你点击它们,它只是刷新页面,这就是它重置所有过滤器的原因,因为它重新初始化所有代码。 您应该将此代码添加到您的插件中 $('.btn-clear').on('click', function(event) { event.preventDefault(); $(this).prev().val("").change(); }); 单击按钮时, event.preventDefault()将阻止运行默认事件,在这种情况下刷新页面。 下一行 ...
-
MixItUp不按类过滤(MixItUp not filtering by classes)[2023-11-01]
默认情况下,您的项目应该由CSS隐藏。 所以,添加它以使其正常工作: #upcoming-games-list > .row > div { display: none; } 在他们的DOC中,他们说: 在我们开始讨论有趣的部分之前,我们必须在项目的样式表中添加一个小而重要的CSS规则来隐藏我们的目标元素。 #Container .mix{ display: none; } »默认情况下,目标元素必须隐藏在项目的样式表中。 By default your items should be ... -
好吧我明白了。 我必须为每个块设置单独的#grid元素,然后为每个#grid元素提供自己的sortSelector。 以下是它的一般外观:这是jQuery,Jquery是一个在javascript中预定义的库,所以如果你想使用这段代码,你需要在页面的head部分包含jQUERY I finnaly found the answer. In the .js file there is a part that says: showOnLoad:"all" Just c ...最后,我能够做到这一点。 我不知道它的完美解决方案和所有,但我做到了这一点。 对于每个有两个div的部分,一个用于过滤器按钮,第二个用于报告图块,我给出了唯一的类(过滤器div)和id(报告图块),并且在AJAX回调函数中我绑定了这样的代码 function SetSectionOneData() { var $container = $('#SectionOneReports'), // Report tiles holding container id. $controls = $('.cd-tab ...我们有很多方法可以解决这个问题。 但是,我会采用基于CSS的方法 @media (min-width: 992px) and (max-width: 1100px){ .single-plugin-list-content h4 a{ font-size: 90%; // or smaller } } 更新 : 如果你可以使用flex,那么这将解决问题。 它应该适用于所有屏幕。 但是,您可以将此添加到min-width: 992px媒体查询。 决定权在你。 #pluginlist ...我设法将jQuery MixItUp整合到我的AngularJs应用程序中。 自定义指令现在看起来像这样: myApp .directive('mixitup', function($compile) { return { restrict: 'A', scope: { datasource: '=', add: '&', }, link: function(scope, element ...尝试: .project-wrapper { text-align:center; } .work-item { float: none; width: 33%; position: relative; } Try: .project-wrapper { text-align:center; } .work-item { float: none; width: 33%; position: relative; }我最终浏览了国家公园演示中的剧本并进行了调整,直到我得到了我想要的东西。 我的脚本就像这样,以防其他人想要这个。 $(function () { // INSTANTIATE MIXITUP $('#grid').mixitup({ effects: ['fade', 'blur'] }); // HANDLE MULTI-DIMENSIONAL CHECKBOX FILTERING var $filters = $('#filters').f ...
相关文章
更多- jquery ajax方法url请求action没有返回json数据。
- jquery与servlet交互的json问题
- data-config
- JSON知多少-JSON数据结构
- (二)solr data import
- 《Big Data Glossary》笔记
- solr 通过URL删除索引
- 请教关于spring mvc中使用json-lib-ext-spring返回json的问题
- Json.Net学习笔记
- 千锋首发Swift视频教程
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)