小编Uza*_*jid的帖子

将JToken(或字符串)转换为给定的Type

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)

c# json.net windows-phone-7 restsharp

64
推荐指数
2
解决办法
12万
查看次数

Android 移动浏览器 - navigator.mediaDevices.enumerateDevices 方法返回交换的音频输入和输出设备值

我正在使用导航器功能 -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)

我已经在其他三个 …

javascript android google-chrome webrtc mobile-development

7
推荐指数
1
解决办法
2146
查看次数

由于CORS,Azure网站上的HTTP OPTIONS请求失败

我最近将我们的服务器从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网站允许非常小的控制.

php jquery azure cors azure-web-sites

6
推荐指数
3
解决办法
2万
查看次数

Windows Phone的数据缓存框架?

我最近开始为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.

c# rest json caching windows-phone-8

5
推荐指数
1
解决办法
1329
查看次数

Azure网站支持的最大域数

我们正在构建托管服务,其中每个用户在注册时都会在我们服务的域中获取自定义子域(例如john.myservice.com).

我们通过在Azure网站的域管理器(*.myservice.com)中添加通配符来处理此问题,Azure网站现在可以正确处理我们添加的域的所有子域.

但是,我们还允许用户将自己的自定义域映射到其子域(例如:johnsmith.com指向john.myservice.com).

现在我们通过向johnsmith.com指向Azure网站IP地址的DNS 添加A记录来实现这一目标,并johnsmith.com在Azure网站的域管理器中添加了一个额外的域.

到目前为止,这是按预期工作的.我的问题是Azure网站支持多少个这样的域名?假设我们有一百万用户,他们都希望将自定义域映射到其托管子域.

Azure是否对可以映射到网站的完全限定域的数量有严格限制?

在相关的说明中,什么是在Azure网站上进行此操作的最佳方式.我确信除了我们现在正在使用的方法之外还有其他方法.

dns azure azure-web-sites

5
推荐指数
2
解决办法
1336
查看次数

从Windows Phone上的应用程序打开照片编辑选择器

我正在为Windows Phone开发Lens应用程序,并且一直在尝试为Photo Edit Picker找到一个API ,但到目前为止我找不到一个.根据我的猜测,在Microsoft.Phone.Tasks命名空间中打开以下屏幕似乎没有任务.

有没有办法从应用程序中打开照片编辑选取器列表,还是不支持?

在此输入图像描述

c# windows-phone windows-phone-8

5
推荐指数
0
解决办法
217
查看次数

在TypeScript中扩展本机JavaScript Number对象

根据TypeScript文档,扩展已有的接口就像使用新属性重新声明它一样简单,然后为这些接口提供实现.我已经习惯了这种技术多次向本机JavaScript对象添加静态方法扩展.但是,这对成员函数不起作用.

例如(TypeScript Playground链接):

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中不支持以这种方式扩展本机对象.

javascript typescript

4
推荐指数
1
解决办法
3445
查看次数

如何将几个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)

angularjs typescript

4
推荐指数
2
解决办法
3255
查看次数

RegEx验证逗号分隔的选项列表

我正在使用PHP的过滤器函数(具体为FILTER_VALIDATE_REGEXP)来验证输入数据.我有一个选项列表,$ input变量可以从列表中指定多个选项.

选项是(不区分大小写):

  1. 所有
  2. 奖励
  3. 加入
  4. 促销
  5. 报到
  6. verified_checkin

$ input变量几乎可以包含任何值的组合.可能的成功案例是:

  • all (值可以是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 (重复值但仍然通过,但不像主要逗号那么重要)

我已经在这里工作了几天并尝试了各种实现,这是我能够得到的最接近的.

关于如何处理领先逗号误报的任何想法?

更新:编辑问题以更好地解释重复过滤不是真正的要求,只是奖金.

javascript php regex pcre

2
推荐指数
1
解决办法
1015
查看次数