小编Ale*_*exC的帖子

更改不可变对象F#

我认为这个标题是错误的,但不能创建一个标题,从抽象的角度来反映我想要实现的目标.

我正在编写一个调用服务并将数据作为JSON字符串检索的函数.该函数使用JSON类型提供程序解析字符串.在某些条件下,我想修改该JSON对象的属性,然后返回修改对象的字符串.因此,如果来自呼叫的响应是

{"property1" : "value1","property2" : "value2", "property3": "value3" }
Run Code Online (Sandbox Code Playgroud)

我想将property3更改为新值,然后返回JSON字符串.

如果JsonProvider是可变的,这将是一个练习,如:

type JsonResponse = 
        JsonProvider<""" {"property1" : "value1", 
                          "property2" : "value2",
                          "property3": "value3" } """>

let jsonResponse = JsonResponse.Parse(response)
jsonResponse.Property3 <- "new value"
jsonResponse.ToString()
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为无法设置属性.我想确定解决这个问题的最佳方法.我很乐意根据原始响应初始化一个新对象,但修改了参数,但我不确定是否有一种简单的方法可以实现这一点.

作为参考,JSON对象比给定的平面示例更复杂,并且包含深层次结构.

f# json type-providers f#-data

8
推荐指数
1
解决办法
520
查看次数

如何用Akka-Http一般包装拒绝

我想使用Akka Http路由系统及其拒绝系统,但需要将响应Json嵌套在一个通用的Json消息块中.

我以非常非通用的方式工作,创建一个RejectionHandler,然后为所有可能的拒绝添加案例,并使用特定的响应代码和消息处理它们.

例:

    // Wraps string into control block format
def WrappingBlock(msg: String) = ???

val myRejectionHandler = RejectionHandler
.newBuilder()
.handle{case MalformedRequestContentRejection(msg, detail) =>
          complete(BadRequest, WrappingBlock(msg)) }
...     // Further lines for all other possible rejections
...     // along with their response codes and messages.
...     // It would be nice if this was just generic code 
...     // rather than specific to every rejection type.
.result()


val routes = handleRejections(myRejectionHandler){ 
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我想要的是Akka HTTP默认提供的响应代码以及提供的漂亮的打印消息,只是嵌套在Json控件包装器中,没有针对每种可能的拒绝类型的行.这似乎应该是可能的,但我无法完成它.

scala akka-http

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

谷歌图表辅助轴线图

我目前正在学习一些谷歌图表与网络编辑,以扩大我的知识,我有一个问题,我无法解决.

<html>   
<head>     
<script type="text/javascript" src="https://www.google.com/jsapi"></script>    
 <script type="text/javascript">       
 google.load("visualization", "1", {packages:["corechart"]});       
 google.setOnLoadCallback(drawChart);       
 function drawChart() {         
 var data = google.visualization.arrayToDataTable([           
 ['Year', 'Derby', 'Bristol', 'Warrington', 'Indianapolis', 'Dahlewitz', 'Montreal'],           
 ['2012',  143754.00 , 7607.59, 958.51, 6029.12 , 13605.12, 586.00], //continue here!!!!!         
 ['2013',  186065.32, 1674.50, 1823.93, 9574.24, 23935.14, 743.43],          
 ['2014',  251238.53, 0,    0,  10154.41, 19926.63, 363.71],           
 ['2015',  323134.57, 0,    0,  10400.66, 12002.84, 555.86], 
 ['2016',  467058.18, 0,    0,  10529.27, 5844.90,  0] ,
 ['2017',  391209.43, 0,    0,  11072.43, 3603.65,  0] ,
 ['2018',  460257.40, 0,    0,  12031.69, 1833.52, …
Run Code Online (Sandbox Code Playgroud)

javascript google-visualization

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

设置Android编辑文本的样式,使其看起来像下拉/微调器选择器

我在包含日期和时间的布局上有两个EditText视图.单击它们打开我的自定义DatePickerFragment和TimePickerFragments.我想用一个选择器下拉角设置EditTexts的样式,如下图所示.

目标视图

但是我无法做到这一点,我的文本字段看起来像这样:

我目前的看法

拾取器全部工作并连接并返回值到EditTexts,我只想正确地进行样式设置.我很乐意从EditText更改容器的类,如果它们应该是其他东西以获得所需的行为.我认为这应该是可能的,因为第一张图片来自谷歌自己的设计文档.查看EditText和TextView类文档以及xml attibute文档.有没有办法做到这一点?

我正在使用Xamarin来编译它,但这应该对答案没有任何影响.

android android-layout xamarin.android android-view

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

如何在不使用c中的算术运算符的情况下将给定数乘以2?

如何在不使用c语言的算术运算符的情况下将给定数字乘以2?

c

3
推荐指数
4
解决办法
6756
查看次数

openlayers:重绘矢量图层而不再重新下载数据

我需要的是一种修改矢量图层表示而无需再次下载数据的方法.我已经定义了一个GLM矢量图层和一个名为build_style的函数,用于根据某些特征为其几何图形着色.我有一个HTML表单调用函数UpdateGlmLayer,它以这种方式定义:

function UpdateGlmLayer(info_str) {
    var v = info_str.split("|");
    var filter_column = v[0];
    var values = [parseFloat(v[1]), parseFloat(v[2]), parseFloat(v[3])];
    glm.styleMap = build_style(filter_column, values);
    glm.redraw();
};
Run Code Online (Sandbox Code Playgroud)

GLM层以这种方式定义:

gml_protocol = new OpenLayers.Protocol.HTTP({
    url: "http://localhost:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName="+info["layer_featurePrefix"]+":"+info["layer_featureType"],
    format: new OpenLayers.Format.GML()
})

glm = new OpenLayers.Layer.Vector(info["layer_name"], {
    strategies: [new OpenLayers.Strategy.BBOX({ratio: 3, resFactor: 1})],
    protocol: gml_protocol,
    styleMap: build_style(info["filter_property"], info["filter_values"]), 
    srsName: info["layer_srsName"],
    projection: new OpenLayers.Projection("EPSG:4326"),
    visibility: true
});
Run Code Online (Sandbox Code Playgroud)

当触发UpdateGlmLayer时,颜色似乎立即改变,但之后系统停止的时间与初始页面加载时下载数据的时间大致相同.在此期间什么都做不了.有什么不对?

javascript gis openlayers

3
推荐指数
1
解决办法
2098
查看次数

为什么IQueryable上的.Where()返回一个不同的类型,基于Lamba或Func <T,Tresult>是否作为参数传递

在我的Entity Framework Code First项目中,我有一个包含路由的存储库对象

public class EFRepository
{
    ...
    public IQueryable<Route> Routes
    {
        get { return context.Routes; }
    }
   ...
}
Run Code Online (Sandbox Code Playgroud)

如果我跑

var routes = this.repository.Routes
                  .Where(r => r.DeployedService.IsActive.HasValue 
                   && r.DeployedService.IsActive.Value);
Run Code Online (Sandbox Code Playgroud)

routes对象是类型IQueryable<Route>.

但是,如果我跑

Func<Route, bool> routeIsActive = r => r.DeployedService.IsActive.HasValue 
                                      && r.DeployedService.IsActive.Value;
var routes = this.repository.Routes.Where(routeIsActive);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,路由对象是类型IEnumerable<Route>.

我本以为他们会被评估相同,但显然我错了.两个语句之间有什么区别,为什么它们会返回不同的类型.

c# linq lambda linq-to-entities entity-framework

3
推荐指数
1
解决办法
135
查看次数

使用httr包,设置标题名称为变量的标题

我想使用R httr包在请求中设置标题并设置标题,当我在变量中有标题的名称时.

我想做这样的事情:

tokenName = 'X-Auth-Token'

get_credentials_test <- function (token) {

  url <- paste(baseUrl,"/api/usercredentials", sep = '')
  r <- GET(url, add_headers(tokenName = token))
  r
}
Run Code Online (Sandbox Code Playgroud)

但是,上面的代码似乎设置了一个名为tokenName的标头.

如果我执行以下操作,它确实有效:

get_credentials_test <- function (token) {

   url <- paste(baseUrl,"/api/usercredentials", sep = '')
   r <- GET(url, add_headers('X-Auth-Token' = token))
   r
}
Run Code Online (Sandbox Code Playgroud)

但是如果标题的名称发生变化并且添加标题的要求大量洒在代码周围,我想要有一些灵活性.我不确定是否可以添加包含变量的头,但这是我想要做的.

r httr

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