TL; DR版本
我有一个类型的对象JToken(但也可以是一个string),我需要将它转换为type变量中包含的类型:
Type type = typeof(DateTime); /* can be any other Type like string, ulong etc */
var obj = jsonObject["date_joined"]; /* contains 2012-08-13T06:01:23Z+05:00 */
var result = Some_Way_To_Convert(type, obj);
Run Code Online (Sandbox Code Playgroud)
上面result应该是一个DateTime对象,其值为date_joined.
全文
我在Windows Phone项目中使用RestSharp和Json.NET,并且在尝试从REST API反序列化JSON响应时遇到困难.
我实际上要完成的是编写一个通用方法,可以轻松地将我的JSON响应映射到我的CLR实体,就像你已经可以使用RestSharp一样.唯一的问题是默认的RestSharp实现对我不起作用,并且它无法成功解析JSON,因为响应并不总是返回所有属性(我不返回null来自REST服务器的字段).
这就是为什么我决定使用Newtonsoft的Json.NET,因为它有一个更强大的Json反序列化引擎.不幸的是,它不支持像RestSharp这样的模糊属性/字段名称(或者我还没有找到),所以当我使用像say这样的东西时,它也不能正确地映射到我的CLR实体JsonConvert.DeserializeObject<User>(response.Content).
这是我的Json的样子(实际上是一个例子):
{
"id" : 77239923,
"username" : "UzEE",
"email" : "uzee@email.net",
"name" : "Uzair Sajid",
"twitter_screen_name" : "UzEE",
"join_date" : "2012-08-13T05:30:23Z05+00",
"timezone" : 5.5,
"access_token" : {
"token" …Run Code Online (Sandbox Code Playgroud) 我正在使用导航器功能 -navigator.mediaDevices.enumerateDevices()在我的移动浏览器应用程序中获取媒体设备列表。我正在使用下面的代码:
navigator.mediaDevices.enumerateDevices().then(function(devices) {
console.log("devices", devices);
});
Run Code Online (Sandbox Code Playgroud)
我正在交换音频输入和音频输出设备对象值,如下所示:
[
{
"deviceId": "default",
"kind": "audioinput",
"label": "Default",
"groupId": "41a111f571a1171ca91c5428d2ad8806a66bb6d7c5812f779161151a706641a1"
},
{
"deviceId": "bbf2c347dbfc70b9e37b16be622c4973a74269c7f53d4162adab0c09614514d1",
"kind": "audioinput",
"label": "Speakerphone",
"groupId": "e8dc20cc0a8dd33f65085c2f06bb8424105eb230c54237c343b8f8ff960559f3"
},
{
"deviceId": "704cd1e8449390f5bb3fd1615a7637753f4ad019d4e6bb3f7c36690f58f2536d",
"kind": "audioinput",
"label": "Headset earpiece",
"groupId": "1f2f370cbbe3f57fe3a8e901dc8f82c8d751f690520c261b293b1480e7959218"
},
{
"deviceId": "38f008a97b8fd5ff8d367c336fcb7120fdc499375fb44459980d60395516b955",
"kind": "videoinput",
"label": "camera2 1, facing front",
"groupId": "3b073bb17b0c56c5f8e6f143d6eeebcbfac5ec2ebc8ff2bc852f66745a63c591"
},
{
"deviceId": "bbf2c347dbfc70b9e37b16be622c4973a74269c7f53d4162adab0c09614514d1",
"kind": "videoinput",
"label": "camera2 0, facing back",
"groupId": "5a8b08633d9b089d234fc7bb0d67fae394e90a4f7948128562251d17408d99d4"
},
{
"deviceId": "default",
"kind": "audiooutput",
"label": "Default",
"groupId": "default"
}
]
Run Code Online (Sandbox Code Playgroud)
我已经在其他三个 …
我最近将我们的服务器从Rackspace CloudSites(在Apache/Linux上运行)转移到了Windows Azure网站.自迁移以来,我们的REST API上的所有jQuery AJAX请求都因CORS而失败.
我们使用自定义标头,因此jQuery在运行实际API调用之前会发出Pre-flight HTTP OPTIONS请求.问题是OPTIONS请求似乎没有到达我的PHP代码,而是由其他一些我似乎无法控制的实体(显然是Web服务器)返回.
我已经使用以下标题几年了所以我很确定问题不在PHP代码中:
<?php
$this->output->set_header("Access-Control-Allow-Origin: *");
$this->output->set_header("Access-Control-Allow-Methods: GET,POST,DELETE,HEAD,PUT,OPTIONS");
$this->output->set_header("Access-Control-Allow-Headers: X-Olaround-Debug-Mode, Authorization, Accept");
$this->output->set_header("Access-Control-Expose-Headers: X-Olaround-Debug-Mode, X-Olaround-Request-Start-Timestamp, X-Olaround-Request-End-Timestamp, X-Olaround-Request-Time, X-Olaround-Request-Method, X-Olaround-Request-Result, X-Olaround-Request-Endpoint" );
?>
Run Code Online (Sandbox Code Playgroud)
我猜这个问题是特定于Azure网站的,因为代码似乎在我的开发机器(Windows 8/IIS 8.0)上运行良好.我是Azure的新手(以及一般的基于Windows的托管)所以我几乎不知道如何处理和调试此问题,因为Azure网站允许非常小的控制.
我最近开始为Windows Phone 8开发应用程序(我之前没有本机应用程序开发经验,我主要是一个Web应用程序开发人员),我一直在为Windows Phone寻找一个好的HTTP缓存框架.
我正在使用基于REST的API,它返回JSON数据,并希望根据数据将响应缓存与不同的缓存策略结合在一起.
我偶然发现了AgFx,它非常适合我一直在寻找的东西,但主要是针对Windows Phone 7.我无法找到类似于Windows Phone 8的东西,它与Portable HTTPClient库一起使用(我是希望在Windows Phone和Windows 8之间重用我的代码.
我想知道Stack Overflow社区中是否有人遇到过为WP8提供灵活数据缓存的东西,或者有人能够将AgFx移植到Windows Phone 8.
我们正在构建托管服务,其中每个用户在注册时都会在我们服务的域中获取自定义子域(例如john.myservice.com).
我们通过在Azure网站的域管理器(*.myservice.com)中添加通配符来处理此问题,Azure网站现在可以正确处理我们添加的域的所有子域.
但是,我们还允许用户将自己的自定义域映射到其子域(例如:johnsmith.com指向john.myservice.com).
现在我们通过向johnsmith.com指向Azure网站IP地址的DNS 添加A记录来实现这一目标,并johnsmith.com在Azure网站的域管理器中添加了一个额外的域.
到目前为止,这是按预期工作的.我的问题是Azure网站支持多少个这样的域名?假设我们有一百万用户,他们都希望将自定义域映射到其托管子域.
Azure是否对可以映射到网站的完全限定域的数量有严格限制?
在相关的说明中,什么是在Azure网站上进行此操作的最佳方式.我确信除了我们现在正在使用的方法之外还有其他方法.
我正在为Windows Phone开发Lens应用程序,并且一直在尝试为Photo Edit Picker找到一个API ,但到目前为止我找不到一个.根据我的猜测,在Microsoft.Phone.Tasks命名空间中打开以下屏幕似乎没有任务.
有没有办法从应用程序中打开照片编辑选取器列表,还是不支持?

根据TypeScript文档,扩展已有的接口就像使用新属性重新声明它一样简单,然后为这些接口提供实现.我已经习惯了这种技术多次向本机JavaScript对象添加静态方法扩展.但是,这对成员函数不起作用.
interface Number {
toPowerOf10: () => string;
}
Number.prototype.toPowerOf10 = (): string => {
return this.toExponential();
}
var n: Number = 10000;
n.toPowerOf10();
Run Code Online (Sandbox Code Playgroud)
上面的代码编译很好,但在运行时,它会抛出以下异常:
Uncaught TypeError: _this.toExponential is not a function
罪魁祸首似乎是TypeScript为此场景生成JavaScript代码的方式:
var _this = this;
Number.prototype.toPowerOf10 = function () {
return _this.toExponential();
};
var n = 1000;
alert(n.toPowerOf10());
Run Code Online (Sandbox Code Playgroud)
很明显这里_this没有引用Number实例.我不确定我是否做错了,或者TypeScript中不支持以这种方式扩展本机对象.
我的TypeScript项目已经成长为中等大小,我正在尝试提出一种很好的组织方式。
现在,该项目(一个Angular 1.x应用程序)具有以下结构:
-app/
|
|-components/
| |
| |-component A/
| | |
| | |-(..models..).ts
| | |-(..services..).ts
| |
| |-component B/
| | |
| | |-(..models..).ts
| | |-(..directives..).ts
| |
| (...)
| |
| |-component Z/
| | |
| | |-(..directives..).ts
| | |-(..services..).ts
| |
| |-components.ts
|
|-app.ts
Run Code Online (Sandbox Code Playgroud)
基本上,我对应用程序组件进行了逻辑分组,例如,一个Video组件将在单个目录中声明其模型和服务。然后,我将所有组件加载到一个文件中,app/components.ts然后重新导出。
-app/
|
|-components/
| |
| |-component A/
| | |
| | |-(..models..).ts
| | |-(..services..).ts …Run Code Online (Sandbox Code Playgroud) 我正在使用PHP的过滤器函数(具体为FILTER_VALIDATE_REGEXP)来验证输入数据.我有一个选项列表,$ input变量可以从列表中指定多个选项.
选项是(不区分大小写):
$ input变量几乎可以包含任何值的组合.可能的成功案例是:
all 或以逗号分隔的其他值列表,但不能同时包含两者)all)我能想出的正则表达式是:
/^(?:all|(?:checkin|verified_checkin|rewards|join|promotions|stream)?(?:,(?:checkin|verified_checkin|rewards|join|promotion|stream))*)$/
Run Code Online (Sandbox Code Playgroud)
到目前为止,它适用于以下示例场景:
all (通过)rewards,join,promotion,checkin,verified_checkin (通过)join (通过)但是,它允许带有前导逗号的值并通过以下方式重复:
,promotion,checkin,verified_checkin (以逗号开头但在不应该的时候也会传递)此外,检查重复项将是一个奖励,但不一定是必需的.
rewards,join,promotion,checkin,join,verified_checkin (重复值但仍然通过,但不像主要逗号那么重要)我已经在这里工作了几天并尝试了各种实现,这是我能够得到的最接近的.
关于如何处理领先逗号误报的任何想法?
更新:编辑问题以更好地解释重复过滤不是真正的要求,只是奖金.