我的示例JSON输入如下:
"JobName":"Test Job 1",
"events":[
{ "features":[],
"InputHiveTable":"uilog_uiclientlogdata",
"eventColumn":"command",
"name":"edu.apollogrp.classroom.discussion.client.events.CreateDiscussionEvent"
},
Run Code Online (Sandbox Code Playgroud)
考虑该字段"InputHiveTable",它可以是全部大写INPUTHIVETABLE,全部小写inputhivetable,或两者的混合,就像现在一样.
目前,我正在阅读以下字段(在Java中):
JSONObject jsonObject = (JSONObject) obj;
JSONArray events = (JSONArray) jsonObject.get("events");
String InputHiveTable = (String)event.get("InputHiveTable");
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何"InputHiveTable"在忽略案例的同时搜索字段.我正在使用JSON Simple库.
我刚刚遇到需要将数据放入JSONObject的情况,而这样做我收到了编译器的警告.
类型安全:方法put(Object,Object)属于原始类型HashMap.应该参数化对泛型类型HashMap的引用.
我试图参数化JSONObject但它给了我错误.
我正在使用以下代码,其中option是Object.
JSONObject additionalDetails = new JSONObject();
additionalDetails.put("showOppo", option.isShowOppo());
additionalDetails.put("showCont", option.isShowCont());
additionalDetails.put("contActionTaken", option.isConActionTaken());
additionalDetails.put("oppoActionTaken", option.isOppoActionTaken());
Run Code Online (Sandbox Code Playgroud)
这是怎么造成的,我该如何解决?
嗨,我正在使用客户端 Http (apache) 和 json-simple。
我想访问json响应的属性,然后使用它们。
知道如何做到这一点吗?我读了一篇文章,但我并没有像它那样工作。
这是我的回答 json:
{"Name":"myname","Lastname":"mylastname","Age":19}
Run Code Online (Sandbox Code Playgroud)
这是我的代码java:
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet getRequest = new HttpGet(
"http://localhost:8000/responsejava");
getRequest.addHeader("accept", "application/json");
HttpResponse response = httpClient.execute(getRequest);
if (response.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
BufferedReader br = new BufferedReader(
new InputStreamReader(
(response.getEntity().getContent())
)
);
StringBuilder content = new StringBuilder();
String line;
while (null != (line = br.readLine())) {
content.append(line);
}
Object obj=JSONValue.parse(content.toString());
JSONObject finalResult=(JSONObject)obj;
System.out.println(finalResult);
httpClient.getConnectionManager().shutdown();
Run Code Online (Sandbox Code Playgroud)
我打印了 null,我做错了什么?
我是Gradle的新手,所以我正在尝试构建一个Java项目并且不确定依赖项.我从来没有让Gradle配置为能够进行我的测试或现在是一个jar文件来编译和运行.
我的build.gradle:
apply plugin: 'java'
apply plugin: 'maven'
repositories {
jcenter()
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.25'
compile 'org.json:json:20160212'
testCompile 'junit:junit:4.12'
}
Run Code Online (Sandbox Code Playgroud)
这就是我在控制台上得到的声明,它没有看到我的导入:
error: package org.json.simple does not exist
import org.json.simple.JSONParser;
Run Code Online (Sandbox Code Playgroud)
这是我的班级:
import org.json.simple.*;
import java.io.*;
import java.util.*;
import java.lang.*;
public class FileLoader {
@SuppressWarnings("unchecked")
public static void main(String args[]) {
JSONParser parser = new JSONParser();
int count = 0;
try {
Object obj = parser.parse(new FileReader(
"Consumers.json"));
JSONObject jsonObject = (JSONObject) obj;
JSONArray array = jsonObject.getJSONArray("people");
} catch …Run Code Online (Sandbox Code Playgroud) String login = "{\"result\":[104192,42068],\"id\":1}";
Object obj = JSONValue.parse(login);
JSONArray array = (JSONArray)obj;
Run Code Online (Sandbox Code Playgroud)
抛出异常
线程"main"中的异常java.lang.ClassCastException:org.json.simple.JSONObject无法强制转换为org.json.simple.JSONArray
这段代码有什么问题?
我有如下JSON:
[{"0":"1","id":"1","1":"abc","name":"abc"},{"0":"2","id":"2","1":"xyz","name":"xyz"}]
Run Code Online (Sandbox Code Playgroud)
它是一个对象数组.
我需要使用Java解析它.我在以下网址使用该库:http: //code.google.com/p/json-simple/downloads/list
此链接的示例1近似于我的要求:http: //code.google.com/p/json-simple/wiki/DecodingExamples
我有以下代码:
/** Decode JSON */
// Assuming the JSON string is stored in jsonResult (String)
Object obj = JSONValue.parse(jsonResult);
JSONArray array = (JSONArray)obj;
JSONObject jsonObj = null;
for (int i=0;i<array.length();i++){
try {
jsonObj = (JSONObject) array.get(i);
} catch (JSONException e) {
e.printStackTrace();
}
try {
Log.d(TAG,"Object no." + (i+1) + " field1: " + jsonObj.get("0") + " field2: " + jsonObj.get("1"));
} catch (JSONException e) {
e.printStackTrace(); …Run Code Online (Sandbox Code Playgroud) 我正在使用Json-Simple使用JSon-Simple lib编写配置文件,但是我在将json字符串转换为map时遇到了问题.
调试我发现parse方法返回一个Map的对象!但是当我尝试直接转换为LinkedMap时,我得到一个ClassCastException:
String json = aceptaDefault();
JSONParser parser = new JSONParser();
Object obj = parser.parse(json);
LinkedHashMap map = (LinkedHashMap)obj;
Run Code Online (Sandbox Code Playgroud) 我在github上有一个json库https://github.com/jillesvangurp/jsonj
这个库有一个基于json simple的解析器,它使用一个处理程序类来完成我在库中创建JsonObject,JsonArray和JsonPrimitive实例的所有工作.
我见过人们发布各种基准测试表明,jackson解析器在性能方面和它一样好,而json simple是较慢的选项之一.因此,为了看看我是否可以提升性能,我创建了一个替代解析器,它使用jackson流API并调用我用于原始解析器的相同处理程序.从功能的角度来看,这很好用,非常简单.
你可以在这里找到相关的类(JsonHandler,JsonParser和JsonParserNg):https://github.com/jillesvangurp/jsonj/tree/master/src/main/java/com/github/jsonj/tools
但是,我没有看到我运行的各种测试有任何改进.
所以,我的问题是:我是否应该看到任何改进,如果是这样,为什么?在我看来,至少在流API模式下,两个库都具有相似的性能.
我对其他人对此的体验非常感兴趣.
我正在尝试对地址进行地理编码并在 java 中获取纬度/经度坐标。我能够对地址进行地理编码并将其返回到 json 对象中,但我无法弄清楚如何使用 json-simple 解析下面的 json 以获取 lat/lng。任何帮助表示赞赏。
{
"results" : [
{
"address_components" : [
{
"long_name" : "Minneapolis",
"short_name" : "Minneapolis",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Hennepin County",
"short_name" : "Hennepin County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Minnesota",
"short_name" : "MN",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : …Run Code Online (Sandbox Code Playgroud) 我使用JSON简单来解析JSON,并NoClassDefFoundError在尝试创建JSONParser对象时得到.
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.JSONParser;
...
JSONParser parser = new JSONParser();
Run Code Online (Sandbox Code Playgroud)
我用命令编译程序:
javac MyProgram.java -cp json-simple-1.1.1.jar
Run Code Online (Sandbox Code Playgroud)
它编译得很好.但是当我用这个命令执行程序时:
java MyProgram
Run Code Online (Sandbox Code Playgroud)
我明白了 NoClassDefFoundError
我究竟做错了什么?
编辑:
完整错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/parser/JSONParser
at getNotesFromNoter.sendPost(getNotesFromNoter.java:53)
at getNotesFromNoter.main(getNotesFromNoter.java:14)
Caused by: java.lang.ClassNotFoundException: org.json.simple.parser.JSONParser
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
Run Code Online (Sandbox Code Playgroud) json-simple ×10
java ×9
json ×7
android ×1
build.gradle ×1
decode ×1
dependencies ×1
exception ×1
generics ×1
gradle ×1
http ×1
httpresponse ×1
jackson ×1
junit ×1