小编Mah*_*man的帖子

Groovy:解析JSON文件

我是Groovy的新手,我正在使用以下代码解析JSON文件:

void getItemData()
{
    def jsonSlurper = new JsonSlurper()
    def reader = new BufferedReader(new InputStreamReader(new FileInputStream("data.json"),"UTF-8"));
    data = jsonSlurper.parse(reader);       
    data.TESTS.each{println  it.MEMBER_ID}
}
Run Code Online (Sandbox Code Playgroud)

我正在正确打印MEMBER_ID的值.

我想参数化上面的函数,如:

void getItemData(String item)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以用我想要的项目来调用这个函数.例如:我想要MEMBER_ADDRESS.我想调用这个函数:

getItemData("MEMBER_ADDRESS")
Run Code Online (Sandbox Code Playgroud)

现在我该如何改变声明:

data.TESTS.each{println  it.MEMBER_ID}
Run Code Online (Sandbox Code Playgroud)

我试过了

it.${item}
Run Code Online (Sandbox Code Playgroud)

和其他一些不起作用的方式.

请教我如何做到这一点.

我的JSON文件如下所示:

{
    "TESTS": 
    [
         {
              "MEMBER_ID": "my name",
              "MEMBER_ADDRESS": "foobarbaz",
         }
    ]
}
Run Code Online (Sandbox Code Playgroud)

iteration syntax groovy parsing json

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

AWS CloudFormation API GatewayV2 路由创建

我正在创建一个模板来创建一个带有apigatewayv2.

我在模板中的 API 定义是:

sfHttpApi:
    Type: AWS::ApiGatewayV2::Api
    DependsOn: sfLambdaFunction
    Properties:
      Name: !Sub sfHttpAPI-${Region}-${Env}
      ProtocolType: HTTP
      Target: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${sfLambdaFunction}/invocations
      CredentialsArn: !GetAtt sfApiGatewayRole.Arn

  sfApiTriggerLambdaPermission:
    Type: "AWS::Lambda::Permission"
    Properties:
      Action: lambda:InvokeFunction
      FunctionName: !GetAtt sfLambdaFunction.Arn
      Principal: apigateway.amazonaws.com
      SourceArn: !Sub 'arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${sfHttpApi}/' 

  sfApiLambdProxyIntegration:
    Type: "AWS::ApiGatewayV2::Integration"
    Properties:
      Description: Lambda Integration
      ConnectionType: INTERNET
      IntegrationMethod: POST
      IntegrationUri: !Sub  "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${sfLambdaFunction.Arn}/invocations"
      PayloadFormatVersion: '1.0'
      ApiId: !Ref sfHttpApi
      IntegrationType: AWS_PROXY

  sfRoute:
    Type: 'AWS::ApiGatewayV2::Route'
    DependsOn:
      - sfApiLambdProxyIntegration
    Properties:
      ApiId: !Ref sfHttpApi
      RouteKey: 'POST/'  **??? This is the part I dont know how to …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation aws-api-gateway

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

从 cloudformation 为 ALB 启用访问日志记录

我想为我的应用程序负载平衡器启用访问日志记录,在这里我找到了如何执行以下操作的过程:

但是我想通过 cloudformation 实现同样的事情,发现只能通过 cloudformation 为经典负载均衡器启用访问日志记录

有什么方法可以为 ALB 实现相同的功能 [elb v2]

amazon-web-services aws-cloudformation aws-load-balancer

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

Amazon Linux2:将 WordPress 应用程序的 PHP 版本从 7.4 升级到 8.0

我在 Amazon Linux 2 EC2 实例上安装了一个 WordPress 应用程序。当前安装的 PHP 版本是 7.4。我想更新这个版本到8.0

我在 EC2 终端中执行以下命令来升级 PHP:

$ amazon-linux-extras | grep php

42  php7.4=latest            enabled      [ =stable ]
_  php8.0                   available    [ =stable ]
Run Code Online (Sandbox Code Playgroud)

$ amazon-linux-extras disable php7.4

....
....
42 php7.4 available [ =stable ]
.....
50 selinux-ng available [ =stable ]
51 php8.0 available [ =stable ]
.....
61 dnsmasq2.85 available [ =stable ]
* Extra topic has reached end of support.
Run Code Online (Sandbox Code Playgroud)

$ amazon-linux-extras | grep php

42 php7.4 available …
Run Code Online (Sandbox Code Playgroud)

php wordpress nginx amazon-ec2 amazon-web-services

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

如何修复NoClassDefFoundError:CircularOutputStream错误?

我只是为Selenium WebDriver(又名Selenium 2)为无头测试创建了一个简单的maven项目.我在pom.xml中添加了PhantomJS驱动程序依赖项和其他依赖项:

<dependency>
    <groupId>com.github.detro</groupId>
    <artifactId>phantomjsdriver</artifactId>
    <version>1.2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

但它得到了错误:

java.lang.NoClassDefFoundError: org/openqa/selenium/io/CircularOutputStream
at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:60)
at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:56)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120)
at jp.co.skygate.home.HomePageLogin.setUp(HomePageLogin.java:108)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
Run Code Online (Sandbox Code Playgroud)

只是从pom.xml中删除PhantomJS依赖项解决了问题并且执行正常.有人可以帮我找到问题吗?

提前致谢.

java headless maven phantomjs selenium-webdriver

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

Java 8:在一个月的特定日期之后查找第 n 个 DayOfWeek

在 Java 8 中,我发现的是

TemporalAdjuster temporal = dayOfWeekInMonth(1,DayOfWeek.MONDAY) 
Run Code Online (Sandbox Code Playgroud)

给出一个月的第一个星期一的时间,和

next(DayOfWeek.MONDAY)
Run Code Online (Sandbox Code Playgroud)

给出特定日期之后的下一个星期一。

但我想在特定日期之后找到第 n 个 MONDAY。

例如,我想要 2017-06-06 之后的第二个星期一,它应该是 2017-06-19,其中

dayOfWeekInMonth(2,DayOfWeek.MONDAY)

会给我 2017-06-12 和

next(DayOfWeek.MONDAY) 
Run Code Online (Sandbox Code Playgroud)

对于第 n 个 DayOfWeek 指标,当然没有参数。它将给出下一个星期一,即 2017-06-12。

我如何在不循环的情况下计算它?

java datetime dayofweek localdate

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