有没有办法将JSON内容反序列化为C#4动态类型?为了使用DataContractJsonSerializer,跳过创建一堆类会很不错.
标题说明了一切.有时似乎Name
和x:Name
属性是可以互换的.
那么,它们之间的确切差异是什么,何时优先使用一个而不是另一个?
以错误的方式使用它们是否有任何性能或内存影响?
我正在开发一个页面,通过jQuery的AJAX支持从Flickr和Panoramio中提取图像.
Flickr端工作正常,但当我尝试$.get(url, callback)
从Panoramio时,我在Chrome的控制台中看到一个错误:
XMLHttpRequest无法加载http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=processImages&minx=-30&miny=0&maxx=0&maxy=150.Access-Control-Allow-Origin不允许使用null.
如果我直接从浏览器查询该URL,它可以正常工作.发生了什么,我可以解决这个问题吗?我是不是错误地编写了我的查询,或者这是因为Panoramio会妨碍我正在尝试做的事情?
Google没有在错误消息上显示任何有用的匹配项.
编辑
以下是一些显示问题的示例代码:
$().ready(function () {
var url = 'http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=processImages&minx=-30&miny=0&maxx=0&maxy=150';
$.get(url, function (jsonp) {
var processImages = function (data) {
alert('ok');
};
eval(jsonp);
});
});
Run Code Online (Sandbox Code Playgroud)
您可以在线运行该示例.
编辑2
感谢Darin对此的帮助. 上面的代码错了. 请改用:
$().ready(function () {
var url = 'http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&minx=-30&miny=0&maxx=0&maxy=150&callback=?';
$.get(url, function (data) {
// can use 'data' in here...
});
});
Run Code Online (Sandbox Code Playgroud) 我在一些代码中看到了这一点,我不知道它的作用:
var jdn = function(y, m, d) {
var tmp = (m <= 2 ? -1 : 0);
return ~~((1461 * (y + 4800 + tmp)) / 4) +
~~((367 * (m - 2 - 12 * tmp)) / 12) -
~~((3 * ((y + 4900 + tmp) / 100)) / 4) +
d - 2483620;
};
Run Code Online (Sandbox Code Playgroud)
什么是~~
运营商吗?
#include <iostream>
#include <set>
using namespace std;
class StudentT {
public:
int id;
string name;
public:
StudentT(int _id, string _name) : id(_id), name(_name) {
}
int getId() {
return id;
}
string getName() {
return name;
}
};
inline bool operator< (StudentT s1, StudentT s2) {
return s1.getId() < s2.getId();
}
int main() {
set<StudentT> st;
StudentT s1(0, "Tom");
StudentT s2(1, "Tim");
st.insert(s1);
st.insert(s2);
set<StudentT> :: iterator itr;
for (itr = st.begin(); itr != st.end(); itr++) {
cout << itr->getId() …
Run Code Online (Sandbox Code Playgroud) 我安装了Visual Studio 15 Preview 3并尝试使用新的元组功能
static void Main(string[] args)
{
var x = DoSomething();
Console.WriteLine(x.x);
}
static (int x, int y) DoSomething()
{
return (1, 2);
}
Run Code Online (Sandbox Code Playgroud)
当我编译时,我收到错误:
未定义或导入预定义类型'System.ValueTuple'2'
根据博客文章,这个功能默认情况下应该"打开".
我做错了什么?
在Chrome中,console
对象定义了两种似乎做同样事情的方法:
console.log(...)
console.dir(...)
Run Code Online (Sandbox Code Playgroud)
我在网上读到dir
了一个在记录它之前获取对象副本的地方,而log
只是将引用传递给控制台,这意味着当你去检查你记录的对象时,它可能已经改变了.然而,一些初步测试表明没有区别,并且它们都可能在不同的状态下显示对象,而不是记录它们.
在Chrome控制台(Ctrl+ Shift+ J)中试试这个,看看我的意思:
> o = { foo: 1 }
> console.log(o)
> o.foo = 2
Run Code Online (Sandbox Code Playgroud)
现在,展开[Object]
日志语句下方并注意它显示foo
的值为2.如果您使用dir
而不是重复实验,则同样如此log
.
我的问题是,为什么这两个看似相同的函数存在console
?
我有一个TextBlock
WPF.我写了很多行,远远超过它的垂直高度.我预计一个垂直滚动条会在发生时自动出现,但事实并非如此.我试图在"属性"窗格中查找滚动条属性,但找不到.
如果我TextBlock
的内容超出其高度,我怎样才能自动创建垂直滚动条?
澄清:我宁愿从设计师那里做,而不是直接写给XAML.
Python的http.server(或Python的SimpleHTTPServer)是从命令行提供当前目录内容的好方法:
python -m http.server
Run Code Online (Sandbox Code Playgroud)
但是,就网络服务器而言,它非常低调......
它表现得好像是单线程的,并且在使用RequireJS加载JavaScript AMD模块时偶尔会导致超时错误.加载一个没有图像的简单页面可能需要五到十秒钟.
什么是更快的替代方案,同样方便?