小编Mic*_*elB的帖子

用任意键的json golang结构

我正在尝试编写一个可以像这样处理json响应的结构类型

{"items":
[{"name": "thing",
  "image_urls": {
    "50x100": [{
      "url": "http://site.com/images/1/50x100.jpg",
      "width": 50,
      "height": 100
    }, {
      "url": "http://site.com/images/2/50x100.jpg",
      "width": 50,
      "height": 100
    }],
    "200x300": [{
      "url": "http://site.com/images/1/200x300.jpg",
      "width": 200,
      "height": 300
    }],
    "400x520": [{
      "url": "http://site.com/images/1/400x520.jpg",
      "width": 400,
      "height": 520
    }]
  }
}
Run Code Online (Sandbox Code Playgroud)

因为每次键都不一样......不同的响应可能有更多或更少的键,不同的键,并且正如您所看到的,50x100返回特定大小的多个图像,如何创建与此匹配的结构?

我可以这样做:

type ImageURL struct {
    Url string
    Width, Height int
}
Run Code Online (Sandbox Code Playgroud)

对于单个项目,以及特定键的列表.但是包含结构看起来如何?

就像是:

type Images struct {
    50x100 []ImageURL
    ...
}
type Items struct {
    name string
    Image_Urls []Images
}
Run Code Online (Sandbox Code Playgroud)

可能会工作,但我无法枚举所有可能的图像大小响应.此外,Image_Urls最后还没有真正的列表.如果可能的话,我希望能够将它直接转储到json.Unmarshal中.

json go

12
推荐指数
1
解决办法
4465
查看次数

带有clojure和ring的静态文件

我正在构建一个测试clojure/ring项目来了解它是如何工作的.我创建了一个名为"junkapp"的应用程序,它实际上只有一个处理程序

(defn handler [request]
  {:status 200
  :headers {"Content-type" "text/html"}
  :body "Hello World"})
Run Code Online (Sandbox Code Playgroud)

还有一个调用静态内容的wrap-resource

(def app
  (wrap-resource handler "public"))
Run Code Online (Sandbox Code Playgroud)

那么在我的project.clj中我引用了lein-ring并且还设置了:handler到我的junkapp.core/app

:plugins [[lein-ring "0.8.5"]]
:ring {:handler junkapp.core/app}
Run Code Online (Sandbox Code Playgroud)

当我用lein run运行它时,一切都按预期工作.调用/返回"Hello World"并调用/test.html将返回resources/public/test.html的内容.

但后来我尝试用它构建一个war文件

lein ring uberwar junkapp.war
Run Code Online (Sandbox Code Playgroud)

并将其放在tomcat7服务器的webapps/dir下.现在,当我去junkapp下的任何路径(so/junkapp /,/ junkapp/foo,/ junkapp/test.html)时,它总是返回"Hello World",我似乎无法让它完全引用静态内容.在谷歌上搜索我看到人们只是说要使用compojure.route/resources但是我正在学习我希望它能像这样工作,然后再加入更多的库.这里发生了什么?

clojure ring

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

Spring rest json post null值

我有一个Spring休息端点做一个简单的hello应用程序.它应该接受{"name":"something"}并返回"Hello,something".

我的控制器是:

@RestController
public class GreetingController { 

    private static final String template = "Hello, %s!";

    @RequestMapping(value="/greeting", method=RequestMethod.POST)
    public String greeting(Person person) {
        return String.format(template, person.getName());
    }

}
Run Code Online (Sandbox Code Playgroud)

人:

public class Person {

    private String name;

    public Person() {
        this.name = "World";
    }

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我向服务提出请求时

curl -X POST -d '{"name": "something"}' http://localhost:8081/testapp/greeting
Run Code Online (Sandbox Code Playgroud)

我明白了

Hello, World!
Run Code Online (Sandbox Code Playgroud)

看起来它没有正确地将json反序列化为Person对象.它使用默认构造函数,然后不设置名称.我发现了这个:如何在REST中创建POST请求以接受JSON输入? …

java rest spring json

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

Oracle通过连续的日期块选择数据

我正在使用 Oracle 数据库,并且有一个包含 2 列数据的表,如下所示:

HASH | DATE
-----------------
abcd | 2017-11-01
abcd | 2017-11-02
abcd | 2017-11-03
wxyz | 2017-11-04
wxyz | 2017-11-05
abcd | 2017-11-06
wxyz | 2017-11-07
abcd | 2017-11-08
abcd | 2017-11-09
lmno | 2017-11-10
lmno | 2017-11-11
Run Code Online (Sandbox Code Playgroud)

我想知道每个哈希被看到的时间窗口。所以喜欢

hash | start      | end
------------------------------
abcd | 2017-11-01 | 2017-11-03
wxyz | 2017-11-04 | 2017-11-05
abcd | 2017-11-06 | 2017-11-06
wxyz | 2017-11-07 | 2017-11-07
abcd | 2017-11-08 | 2017-11-09
lmno | 2017-11-10 | 2017-11-11
Run Code Online (Sandbox Code Playgroud)

到目前为止我所拥有的基本上是这样的: …

sql oracle

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

解组 json 字段是 int 或 string

我有一个应用程序,其类型是

type Person struct {
  Name string `json:"name"`
  Age  int    `json:"age"`
}
Run Code Online (Sandbox Code Playgroud)

但是我们有传统客户端将Age字段作为字符串或整数发送,所以......

{
  "name": "Joe",
  "age": "42"
}
Run Code Online (Sandbox Code Playgroud)

或者

{
  "name": "Joe",
  "age": 42
}
Run Code Online (Sandbox Code Playgroud)

我知道如果我想将“age”字段强制转换为整数,我可以用“,string”注释“age”字段,但如果该字段可以是其中之一怎么办?

go

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

Spring Boot 应用程序中的 LDAP 身份验证

我对 LDAP 几乎一无所知,对 spring 安全性更不了解,但我正在尝试配置一个 spring 启动应用程序以针对 ldap 实例进行身份验证,但我被卡住了。

我在 adldap.company.com 上获得了 ldap 服务器名称和 dc=ad,dc=company,dc=com 的基本 dn

我有一些 Python 代码可以进行简单的绑定并且可以工作。

LDAP_USERNAME = 'username@ad.company.com'
LDAP_PASSWORD = 'password'
base_dn = 'dc=ad,dc=company,dc=com' # not used for bind I guess, only search
try:
    ldap_client = ldap.initialize('ldap://adldap.company.com')
    ldap_client.set_option(ldap.OPT_REFERRALS,0)
    ldap_client.simple_bind_s(LDAP_USERNAME, LDAP_PASSWORD)
except ldap.INVALID_CREDENTIALS as e:
    ldap_client.unbind()
    return 'Wrong username and password: %s' % e
except ldap.SERVER_DOWN:
   return 'AD server not available'
Run Code Online (Sandbox Code Playgroud)

如果我运行此代码,它似乎成功绑定为“username@ad.company.com”和密码“password”。

我还有一个我认为应该处理身份验证的 WebSecurityConfig 类:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void …
Run Code Online (Sandbox Code Playgroud)

java spring ldap active-directory spring-boot

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

杰克逊JSON双向对象参考

我有一对像

public class Obj1 {
    public int id;
    public String name;
    public Obj2 obj2;
}

public class Obj2 {
    public int id;
    public String name;
    public List<Obj1> obj1list;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够通过Jackson将其转换为Json。我找到了JsonManagedReferenceJsonBackReference并为它们添加了注释,但是当您这样做时,序列化仅以一种方式起作用。仅当JsonManagedReference侧面的类被序列化时才显示。

如果我序列化一个“ Obj1”,我想查看附加到它的“ Obj2”。如果我序列化“ Obj2”,我想查看附加到它的“ Obj1”列表。

我也试过像这样使用JsonIdentityInfo批注

@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
Run Code Online (Sandbox Code Playgroud)

除了将父对象的“ id”值添加到子对象(或列表案例中的每个子对象)之外,这似乎很有效,这有点奇怪。虽然我想我可以忍受。

有没有办法让它表现出我所期望的?

java jackson

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

标签 统计

java ×3

go ×2

json ×2

spring ×2

active-directory ×1

clojure ×1

jackson ×1

ldap ×1

oracle ×1

rest ×1

ring ×1

spring-boot ×1

sql ×1