Tag: json

来自JSON的DTO和动态密钥

我正在试图弄清楚如何为一个Spring Boot应用程序编写一个很好的DTO,它将搜索function代理到另一个(Python)服务。 所以我目前有一个近乎完美的设置。 我只是将我从Elasticsearch返回的聚合表示为Java端的对象时遇到问题。 这是当前的Aggregation DTO: package com.example.dto.search; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import java.util.List; import java.util.Map; @Getter @Setter @NoArgsConstructor public class Aggregation { private List<Map> buckets; private int docCountErrorUpperBound; private int sumOtherDocCount; } 看一下JSON表示,看起来像这样: { “aggregations”: { “categories”: { “buckets”: [ { “doc_count”: 12, “key”: “IT”, “sub_categories”: { “buckets”: [ { “doc_count”: 12, […]

ElasticSearch / Painless:如何访问/汇总对象中的所有值

我一直在研究聚合,并且在使用painless脚本编写时,我无法弄清楚如何迭代/求和对象中的所有值。 例: 我的映射看起来像 “field1”: { “properties”: { “subfield1”: { “type”: “float” }, “subfield2”: { “type”: “float” }, “subfield3”: { “type”: “float” } } } 我们假设我的数据如下所示: { “field1” : { “subfield1”: 50.0, “subfield2”: 20.5, “subfield3”: 30.5 } } 我想在50.0 + 20.5 + 30.5上执行范围查询,或者基本上以某种方式访问field1对象中的所有值。 聚合不允许我在字段中使用通配符。 我正在查看LeafDocLookup的代码 (内部用于无痛),我看到相关方法被禁用。 我设法编写了这样的脚本: “query”: { “script”: { “script”: { “inline”: “return (doc[‘field1.subfield1’].value […]

Struts 2:带点或逗号的双精度值

我不能用点(例2.2)插入双值的问题,但是我可以用逗号插入它们(例如:2,2)。 但是当我想使用(JSP和Ajax)编辑它们时,即使我用逗号存储它们,它们也会出现(点),所以我必须编辑所有值! 场景如下:我想在我的应用程序(hibernate和struts2)中编辑一些double值,我将值从action传递给JSP: private Service Service; private Vehicule v; private Map map= new HashMap(); public String query() { Service = new ServiceImpl(); v = new Vehicule(); v= Service.getVehiculeByImmat(field1); map.put(“date”, v.getdate().toString()); map.put(“kilometrage”, v.getKilometrage()); return “success”; } 然后我在我的JSP中显示它们: $(document).ready(function(){ $(‘#field1’).change(function(){ var selectedValue = $(‘#field1’).val(); if ($.trim(selectedValue).length > 0) { alert(selectedValue); $.ajax( { type: ‘POST’, url : “”, […]

FlexJSON在反序列化时排除属性

我从Web服务收到JSON响应,但由于各种原因,我不希望在最终响应对象中反序列化某些属性。 例如我有: public class Foo { private String bar; private int baz; //getters & setters } 我回来的JSON响应有两个属性,但在反序列化时我不想设置“bar”。 这样做的原因是他们发送的属性很长,但是我们的是一个String,因此反序列化会抛出IllegalArgumentException。 另一种选择是使用类似json-simple的东西解析JSON,删除我想要的属性,将其转换回JSON并将其传递给反序列化器,但是我想避免这种情况,因为JSON非常大。 有没有办法用ObjectFactory做到这一点?

解析数据时出错org.json.JSONException:字符0处的输入结束

我正在尝试解析来自此URL的 JSON数据。 但我收到这些错误: 03-27 16:48:21.019:E / Buffer Error(23717):转换结果java.lang.NullPointerException时出错 03-27 16:48:21.059:E / JSON Parser(23717):解析数据时出错org.json.JSONException:字符0处的输入结束 当我调试我的代码时; getJsonFromUrl()方法返回null jobject 。 这是我使用的JSONParser类 。 是什么导致错误? public class JSONParser { static InputStream iStream = null; static JSONArray jarray = null; static JSONObject jObj= null; static String json = “”; public JSONParser() { } public JSONObject getJSONFromUrl(String url) { // Making HTTP […]

如何使用Java中的Streaming API解析JSON日志文件,然后输出列表日志文件

我有一个问题,我试图解析以JSON格式存储的大型日志文件,然后将数据列表并输出为另一个JSON文件。 以下是我正在解析的日志文件的格式: { “timestamp”: “2012-10-01TO1:00:00.000”, “id”: “someone@somewhere.net”, “action”: “Some_Action” “responsecode”: “1000” } 此处的操作是某些用户执行的操作,响应代码是该操作的结果。 时间戳和id实际上与我的制表无关,我只对动作/代码字段感兴趣。 在任何给定的日志文件中可能有成千上万的这些条目,我想要做的是跟踪所有类型的操作 , 响应代码及其各自的出现次数。 下面是我想要生成的输出示例。 {“actionName”: “Some_User_Action”, “responses”: [{“code”: “1000”, “count”: “36”}, {“code”: “1001”, “count”: “6”}, {“code”: “1002”, “count”: “3”}, {“code”: “1003”, “count”: “36”}, {“code”: “1004”, “count”: “2”}], “totalActionCount”: “83”} 所以基本上,对于每个Action,我想跟踪它生成的所有不同响应以及每个响应发生的次数。 最后,我想跟踪该行动的总回复总数。 目前,我已经为输出对象创建了一个Java类,我计划在其中存储输出数据。 我也对我应该存储响应数组的格式和它们各自的计数数字有点困惑。 响应代码类型的总数也因Action而异。 根据我的研究,我似乎需要使用Streaming API来使用JSON解析。 使用Streaming API的原因主要是由于使用非流API需要的内存开销量,这可能与这些日志文件的大小无法实现。 我目前正在考虑使用Jackson或GSON,但我无法找到任何具体的示例或教程来帮助我入门。 有没有人知道我可以学习的一个很好的例子,或者对我如何解决这个问题有任何暗示? 谢谢! […]

如何在Java中使用JSONata?

JSONata是一种用于查询和转换JSON数据结构的表达式语言。 我发现JSONata的当前实现仅在Javascript中。 ( https://github.com/jsonata-js/jsonata ) 我想在我的Java代码中使用JSONata。 它将使用Java操作JSON文档变得更加容易。 一种可能的方法是使用javax.script包下的标准Java类与基于Javascript的JSONata实现进行交互。 有没有人这样做过? 有没有示例代码来演示如何实现这一目标? 有人在Java中实现了使用JSONata的其他机制吗?

位置0处的意外字符(i)。 – 使用Java解析JSON

{ “0” : { “upc” : “00000000005”, “name” : “Weighable Soup Cups”, “location” : “5310ed21d5dc7aaa0343a932” }, “1” : { “upc” : “00000000011”, “name” : “OF Reuseable Bags”, “location” : “5310ed21d5dc7aaa0343a932” } } 这是我试图解析的JSON的片段。 这是我正在使用的代码: public class Main { public static void main(String[] args) { JSONParser parser = new JSONParser(); JSONObject jsonObject = null; try { […]

jackson – 结合@JsonValue和@JsonSerialize

我正在尝试@JsonValue和@JsonSerialize的组合。 让我们从我当前的容器类开始: public class Container { private final Map data; @JsonValue @JsonSerialize(keyUsing = SomeKeySerializer.class) public Map data() { return data; } } 在这种情况下,不使用自定义序列化程序SomeKeySerializer 。 如果我按如下方式更改容器,则会调用序列化程序: public class Container { @JsonSerialize(keyUsing = SomeKeySerializer.class) private final Map data; } 但是,这不是我想要的,因为这会在输出JSON中引入另一个“数据”级别。 是否有可能以某种方式组合@JsonValue和@JsonSerialize ? 我总是可以为Container编写另一个自定义序列化程序,它或多或少与@JsonValue背后的function相同。 在我看来,这或多或少都是黑客攻击。 jackson版本:2.6.2

在Android中使用MultipartEntityBuilder时,HttpPost返回错误

我正在尝试查询“ http://www.idmypill.com/api/id/”api ,我收到的JSON字符串是{“results”:[],”success”:false,”errors”:null}这是我的服务处理程序类: public String makeServiceCall(String url, int method, String api, byte[] pillImage) { try { // http client DefaultHttpClient httpClient = new DefaultHttpClient(); HttpEntity httpEntity = null; HttpResponse httpResponse = null; // Checking http request method type if (method == POST) { android.os.Debug.waitForDebugger(); HttpPost httpPost = new HttpPost(url); httpPost.setHeader(“data = api_key”, api); MultipartEntityBuilder builder […]