Skip to content

Commit

Permalink
improved jsonpath support
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed Mar 18, 2020
1 parent 97d0eb0 commit 7154e20
Show file tree
Hide file tree
Showing 4 changed files with 156 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
language: java
jdk:
- openjdk8
- oraclejdk8
before_install:
- pip install --user codecov
after_success:
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.63_preview_01</version>
<version>1.2.67_preview_02</version>

<packaging>jar</packaging>
<name>fastjson</name>
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/alibaba/fastjson/JSONPath.java
Original file line number Diff line number Diff line change
Expand Up @@ -3301,6 +3301,10 @@ protected Object getArrayItem(final Object currentObject, int index) {
return null;
}

if (index == 0) {
return currentObject;
}

throw new UnsupportedOperationException();
}

Expand Down
150 changes: 150 additions & 0 deletions src/test/java/com/alibaba/json/bvt/issue_3000/Issue3065.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
package com.alibaba.json.bvt.issue_3000;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature;
import junit.framework.TestCase;

public class Issue3065 extends TestCase {
public void test_for_issue() throws Exception {
String data = "{\n" +
"\t\"code\":\"OK\",\n" +
"\t\"data\":[\n" +
"\t\t{\n" +
"\t\t\t\"createTime\":1584457789,\n" +
"\t\t\t\"dbName\":\"basic_test\",\n" +
"\t\t\t\"lastAccessTime\":0,\n" +
"\t\t\t\"parameters\":{\n" +
"\t\t\t\t\"transient_lastDdlTime\":\"1584457789\"\n" +
"\t\t\t},\n" +
"\t\t\t\"parametersSize\":2,\n" +
"\t\t\t\"partId\":2209,\n" +
"\t\t\t\"sd\":{\n" +
"\t\t\t\t\"bucketCols\":[],\n" +
"\t\t\t\t\"cdId\":2719,\n" +
"\t\t\t\t\"cols\":[\n" +
"\t\t\t\t\t{\n" +
"\t\t\t\t\t\t\"name\":\"n_nationkey\",\n" +
"\t\t\t\t\t\t\"type\":\"int\"\n" +
"\t\t\t\t\t},\n" +
"\t\t\t\t\t{\n" +
"\t\t\t\t\t\t\"name\":\"n_name\",\n" +
"\t\t\t\t\t\t\"type\":\"string\"\n" +
"\t\t\t\t\t},\n" +
"\t\t\t\t\t{\n" +
"\t\t\t\t\t\t\"name\":\"n_regionkey\",\n" +
"\t\t\t\t\t\t\"type\":\"int\"\n" +
"\t\t\t\t\t},\n" +
"\t\t\t\t\t{\n" +
"\t\t\t\t\t\t\"name\":\"n_comment\",\n" +
"\t\t\t\t\t\t\"type\":\"string\"\n" +
"\t\t\t\t\t}\n" +
"\t\t\t\t],\n" +
"\t\t\t\t\"compressed\":false,\n" +
"\t\t\t\t\"inputFormat\":\"org.apache.hadoop.mapred.TextInputFormat\",\n" +
"\t\t\t\t\"location\":\"oss://hello/world/\",\n" +
"\t\t\t\t\"numBuckets\":0,\n" +
"\t\t\t\t\"outputFormat\":\"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat\",\n" +
"\t\t\t\t\"parameters\":{},\n" +
"\t\t\t\t\"sdId\":2662,\n" +
"\t\t\t\t\"serDeInfo\":{\n" +
"\t\t\t\t\t\"name\":\"nation_part_hidden\",\n" +
"\t\t\t\t\t\"parameters\":{\n" +
"\t\t\t\t\t\t\"field.delim\":\"|\",\n" +
"\t\t\t\t\t\t\"serialization.format\":\"|\"\n" +
"\t\t\t\t\t},\n" +
"\t\t\t\t\t\"serdeId\":2720,\n" +
"\t\t\t\t\t\"serializationLib\":\"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe\"\n" +
"\t\t\t\t},\n" +
"\t\t\t\t\"skewedInfo\":{\n" +
"\t\t\t\t\t\"skewedColNames\":[],\n" +
"\t\t\t\t\t\"skewedColValueLocationMaps\":{},\n" +
"\t\t\t\t\t\"skewedColValues\":[]\n" +
"\t\t\t\t},\n" +
"\t\t\t\t\"sortCols\":[],\n" +
"\t\t\t\t\"storedAsSubDirectories\":false\n" +
"\t\t\t},\n" +
"\t\t\t\"tableName\":\"nation_part_hidden\",\n" +
"\t\t\t\"tblId\":453,\n" +
"\t\t\t\"values\":[\n" +
"\t\t\t\t\"2019\",\n" +
"\t\t\t\t\"01\",\n" +
"\t\t\t\t\"15\"\n" +
"\t\t\t]\n" +
"\t\t},\n" +
"\t\t{\n" +
"\t\t\t\"createTime\":1584457789,\n" +
"\t\t\t\"dbName\":\"basic_test\",\n" +
"\t\t\t\"lastAccessTime\":0,\n" +
"\t\t\t\"parameters\":{\n" +
"\t\t\t\t\"transient_lastDdlTime\":\"1584457789\"\n" +
"\t\t\t},\n" +
"\t\t\t\"parametersSize\":2,\n" +
"\t\t\t\"partId\":2210,\n" +
"\t\t\t\"sd\":{\n" +
"\t\t\t\t\"bucketCols\":[],\n" +
"\t\t\t\t\"cdId\":2719,\n" +
"\t\t\t\t\"cols\":[\n" +
"\t\t\t\t\t{\n" +
"\t\t\t\t\t\t\"name\":\"n_nationkey\",\n" +
"\t\t\t\t\t\t\"type\":\"int\"\n" +
"\t\t\t\t\t},\n" +
"\t\t\t\t\t{\n" +
"\t\t\t\t\t\t\"name\":\"n_name\",\n" +
"\t\t\t\t\t\t\"type\":\"string\"\n" +
"\t\t\t\t\t},\n" +
"\t\t\t\t\t{\n" +
"\t\t\t\t\t\t\"name\":\"n_regionkey\",\n" +
"\t\t\t\t\t\t\"type\":\"int\"\n" +
"\t\t\t\t\t},\n" +
"\t\t\t\t\t{\n" +
"\t\t\t\t\t\t\"name\":\"n_comment\",\n" +
"\t\t\t\t\t\t\"type\":\"string\"\n" +
"\t\t\t\t\t}\n" +
"\t\t\t\t],\n" +
"\t\t\t\t\"compressed\":false,\n" +
"\t\t\t\t\"inputFormat\":\"org.apache.hadoop.mapred.TextInputFormat\",\n" +
"\t\t\t\t\"location\":\"oss://hello/world/\",\n" +
"\t\t\t\t\"numBuckets\":0,\n" +
"\t\t\t\t\"outputFormat\":\"org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat\",\n" +
"\t\t\t\t\"parameters\":{\n" +
"\t\t\t\t\t\"$ref\":\"$[0].sd.parameters\"\n" +
"\t\t\t\t},\n" +
"\t\t\t\t\"sdId\":2663,\n" +
"\t\t\t\t\"serDeInfo\":{\n" +
"\t\t\t\t\t\"name\":\"nation_part_hidden\",\n" +
"\t\t\t\t\t\"parameters\":{\n" +
"\t\t\t\t\t\t\"$ref\":\"$[0].sd.serDeInfo.parameters\"\n" +
"\t\t\t\t\t},\n" +
"\t\t\t\t\t\"serdeId\":2721,\n" +
"\t\t\t\t\t\"serializationLib\":\"org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe\"\n" +
"\t\t\t\t},\n" +
"\t\t\t\t\"skewedInfo\":{\n" +
"\t\t\t\t\t\"skewedColNames\":[],\n" +
"\t\t\t\t\t\"skewedColValueLocationMaps\":{},\n" +
"\t\t\t\t\t\"skewedColValues\":[]\n" +
"\t\t\t\t},\n" +
"\t\t\t\t\"sortCols\":[],\n" +
"\t\t\t\t\"storedAsSubDirectories\":false\n" +
"\t\t\t},\n" +
"\t\t\t\"tableName\":\"nation_part_hidden\",\n" +
"\t\t\t\"tblId\":453,\n" +
"\t\t\t\"values\":[\n" +
"\t\t\t\t\"2018\",\n" +
"\t\t\t\t\"12\",\n" +
"\t\t\t\t\"20\"\n" +
"\t\t\t]\n" +
"\t\t}\n" +
"\t],\n" +
"\t\"success\":true\n" +
"}";
ResultData resultData = JSON.parseObject(data, ResultData.class);
System.out.println(resultData);
}

public static class ResultData
{
private boolean success;
private String message;
private Object data;
}
}

0 comments on commit 7154e20

Please sign in to comment.