小编Chr*_*ris的帖子

在RestSharp中动态反序列化为属性

我正在使用Harvest API,我正在尝试尽可能简单地自动映射实体,不幸的是,当我发出请求时,GET /projects它会产生如下结果:

[{
    project: {
        name: "Test"
    }
},
{
    project: {
        name: "Test 2"
}]
Run Code Online (Sandbox Code Playgroud)

在RestSharp中,我无法直接执行此操作:

client.Execute<List<Project>>(request)
Run Code Online (Sandbox Code Playgroud)

因为它会寻找一个叫做的属性Project.所以我必须创建另一个具有该属性的类,并将其命名为:

client.Execute<List<ProjectContainer>>(request)
Run Code Online (Sandbox Code Playgroud)

我不想为每个实体创建一个"容器"类,所以我认为我找到了一个聪明的解决方案来创建一个我可以使用的类:

public class ListContainer<T> where T : IHarvestEntity
{
    public T Item { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,当然,反序列化器不知道它需要将实体名称(或"项目")映射到属性Item.在restsharp文档中,我发现我可以[DeserializeAs(Name = "CustomProperty")]用来告诉反序列化器哪个字段映射到这个属性.但是,属性只允许常量,这意味着我不能这样做:

[DeserializeAs(Name = typeof(T).FullName)]
public T Item { get; set; }
Run Code Online (Sandbox Code Playgroud)

有谁知道这个聪明的解决方案?所以我不必创建10个不同的容器类?

c# restsharp

27
推荐指数
2
解决办法
7790
查看次数

将int存储在ArrayList中并将其恢复为原始变量int - Java

我收到错误,无法找到解决方法.

我将一个int添加到ArrayList.

int n = 1;
ArrayList list = new ArrayList();
list.add( n );
Run Code Online (Sandbox Code Playgroud)

再往下,我试着把它放回另一个int:

grid[ y ][ x ] = list.get(0);
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

grid[ y ][ x ] = (int) list.get(0);
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我得到这个错误:

found   : java.lang.Object
required: int
grid[ y ][ x ] = (int)list.get(0);
                              ^
Run Code Online (Sandbox Code Playgroud)

我希望有一个人可以帮助我.

java int arraylist

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

使用ActiveResource模型Rails 4时,嵌套表单失败

我在为ActiveResource模型创建表单时遇到问题,但我似乎无法找到解决方案.问题是模型不知道字段,并在我尝试创建文本字段时抛出错误:

undefined method `firstname' for #<User:0x00000002946ec8>
Run Code Online (Sandbox Code Playgroud)

对于这种形式:

<%= form_for(@user) do |f| %>
<div class="field">
   <%= f.label :firstname %><br>
   <%= f.text_field :firstname %>
 </div>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

def new
  @user = User.new
end
Run Code Online (Sandbox Code Playgroud)

这是我的用户模型:

class User < ActiveResource::Base
  self.site = "https://***.com/api/v1.0/"
end
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法,但是这对ActiveResource模型不起作用,它不知道再也无法存储检索到的数据.user.firstname为空,当我删除它不是行...

attr_accessor :firstname, :lastname
Run Code Online (Sandbox Code Playgroud)

然后我找到了宝石Fortify(https://rubygems.org/gems/fortify),但最后一次更新是在2010年,安装它不起作用......

我希望有人熟悉这个问题,可以帮助我朝着正确的方向前进.

ruby ruby-on-rails activeresource

6
推荐指数
1
解决办法
720
查看次数

将JSON字符串解析为数组,而不是对象

我有一个PHP数组并使用json编码将其回显到javascript中,我需要这样做,因为它会非常动态.这是它回应的代码:

{"notempty":true}
Run Code Online (Sandbox Code Playgroud)

我使用它,将其转换为javascript:

var myarray = eval('(' + json + ')');
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它创建了一个对象而不是一个数组,因此我不能使用.length或for循环.

有人知道我在这里做错了什么吗?

谢谢

javascript php arrays json object

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

PayPal API:购物车项目金额的总计与订单金额不匹配

有很多关于此错误的帖子,但它们都不适用于我.我真的不明白为什么金额不匹配.我有与AMT0*QTY0匹配的ITEMAMT.AMT与ITEMAMT + SHIPPINGAMT相匹配.我一遍又一遍地检查了文档,它确实应该以这种方式工作.当我完全删除它的运输时,它的工作原理...

结帐网址中的AMT也是73.9.

我真的希望有人熟悉这个令人困惑的错误,并且知道我做错了什么......

提前致谢

Array
(
    [TIMESTAMP] => 2013-01-24T22:56:09Z
    [CORRELATIONID] =>
    [ACK] => Failure
    [VERSION] => 62.0
    [BUILD] => 4181146
    [L_ERRORCODE0] => 10413
    [L_SHORTMESSAGE0] => Transaction refused because of an invalid argument. See additional error messages for details.
    [L_LONGMESSAGE0] => The totals of the cart item amounts do not match order amounts.
    [L_SEVERITYCODE0] => Error
)
Array
(
    [PAYMENTREQUEST_0_PAYMENTACTION] => Sale
    [L_PAYMENTREQUEST_0_NAME0] => XXXX
    [L_PAYMENTREQUEST_0_NUMBER0] => 30533
    [L_PAYMENTREQUEST_0_DESC0] => XXXX
    [L_PAYMENTREQUEST_0_AMT0] => 30.95
    [L_PAYMENTREQUEST_0_QTY0] => 2
    [PAYMENTREQUEST_0_ITEMAMT] => …
Run Code Online (Sandbox Code Playgroud)

php api paypal

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

在EF中保存对象时,数据库中没有新的多对多连接

我的代码有问题,我尝试在两个对象之间保存多对多的连接,但由于某种原因它不会被保存.

我们使用代码优先方法来创建我们的数据库,在我们的数据库中我们有以下实体来解决这个问题:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<ProductTag> ProductTags { get; set; }
}
public class ProductTag
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Product> Products { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

ProductTagProducts表是自动创建的,当然这只是两者之间的连接表.

现在创建产品很好.我们可以运行以下命令,它将在ProductTagProducts表中创建连接:

Product.ProductTags.Add(productTag);
Run Code Online (Sandbox Code Playgroud)

为了确保数据库中没有重复的任务,我们自己处理它的保存.productTag始终包含具有现有ID的产品标签.

当我们想要编辑相同或其他产品时会出现问题.该产品有现有标签.我们使用以下过程来保存它:

List<ProductTag> productTags = new List<ProductTag>();
string[] splittedTags = productLanguagePost.TagList.Split(',');
foreach (string tag in splittedTags) {
    ProductTag productTag = new …
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

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

React 原生 iOS 中的 0x8badf00d

我正在开发一个 React Native (0.45.0) 应用程序,并且在几个小时内我的应用程序崩溃(或者更确切地说是被看门狗杀死)0x8badf00d。我明白为什么看门狗会杀死应用程序;主线程需要超过 20 秒来响应一个事件。但我不知道如何在 React Native 中调试它。一切都在 Javascript 和 promises 中,所以我假设我正在做的网络执行已经是异步的。

该应用程序似乎只是在后台崩溃。但是,崩溃报告角色状态为前景。我们正在使用后台获取和后台地理定位,它们都执行网络请求。我测量了从事件触发到完成的时间,总共不超过一秒。

我读到发生此错误的最常见问题是对主要威胁的网络请求。会不会是它尝试同步加载js包并挂起?当我的所有代码都在 Javascript 中时,如何调试此问题?

非常感谢您提前。

Incident Identifier: 36E63A5F-7C40-40C0-9914-2C9EAE494C11
Beta Identifier:     3C432B54-1947-470E-A387-6566A494E145
Hardware Model:      iPhone7,2
Process:              [993]
Path:                /private/var/containers/Bundle/Application/70B3363C-32E9-4D26-B6C6-DB51304D46C7/.app/
Identifier:          org.reactjs.native.example.Test3
Version:             20 (1.4)
Beta:                YES
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           org.reactjs.native.example.Test3 [703]


Date/Time:           2017-07-17 21:31:33.1931 -0400
Launch Time:         2017-07-17 19:18:30.9574 -0400
OS Version:          iPhone OS 10.3.2 (14F89)
Report Version:      104

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: …
Run Code Online (Sandbox Code Playgroud)

javascript ios react-native react-native-ios

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

AngularJS视图中的字符串到整数

我知道如何将字符串转换为控制器中的整数

parseInt( $scope.date)
Run Code Online (Sandbox Code Playgroud)

但我必须在视图中这样做

<span data-ng-show="item.date">{{ item.date | hbdatetime }}</span>
Run Code Online (Sandbox Code Playgroud)

在视图本身我必须将日期(我得到的字符串)转换为整数,以便我可以使用hbdatetime进行过滤.

我正在尝试这样的事情

// <data-ng-show="item.date">parseInt{{ item.date | hbdatetime }}</span> 
Run Code Online (Sandbox Code Playgroud)

请以棱角分明的方式帮忙

javascript angularjs

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