instagram / ig-json-parser Goto Github PK
View Code? Open in Web Editor NEWFast JSON parser for java projects
License: MIT License
Fast JSON parser for java projects
License: MIT License
Hi everyone, using Android Studio I managed to generate the gen-src folder, with the generated Object_JsonHelper.
My project tree looks like this:
app
->gen-src
->main->java->com.mypackage
->src
->main->java->com.mypackage
The compiler show the Object_JsonHelper as an error but the fact is that when I press the play button the apk is deployed on the device/emulator. How can I get rid of the compiler error?
I'm very fond on implementing this solution.
Thanks
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonAnnotationProcessor.java:264: error: cannot find symbol
if (StringUtil.isNullOrEmpty(annotation.valueExtractFormatter()) ||
^
symbol: variable StringUtil
location: class JsonAnnotationProcessor
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonAnnotationProcessor.java:265: error: cannot find symbol
StringUtil.isNullOrEmpty(annotation.serializeCodeFormatter())) {
^
symbol: variable StringUtil
location: class JsonAnnotationProcessor
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:224: error: cannot find symbol
if (StringUtil.isNullOrEmpty(assignmentFormatter)) {
^
symbol: variable StringUtil
location: class JsonParserClassData
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:236: error: cannot find symbol
if (StringUtil.isNullOrEmpty(assignmentFormatter)) {
^
symbol: variable StringUtil
location: class JsonParserClassData
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:284: error: cannot find symbol
if (StringUtil.isNullOrEmpty(valueExtractFormatter)) {
^
symbol: variable StringUtil
location: class JsonParserClassData
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:394: error: cannot find symbol
if (StringUtil.isNullOrEmpty(serializeCode)) {
^
symbol: variable StringUtil
location: class JsonParserClassData
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:428: error: cannot find symbol
if (StringUtil.isNullOrEmpty(serializeCode)) {
^
symbol: variable StringUtil
location: class JsonParserClassData
ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:445: error: cannot find symbol
if (StringUtil.isNullOrEmpty(serializeCode)) {
^
symbol: variable StringUtil
location: class JsonParserClassData
8 errors
Currently this parser has a dependency on Google's guava library that adds 15082 methods to any project that uses it. Given that the limit for a dex file is only 65k, is there any way you guys can reduce this? If not, can you at least give better proguard documentation? The current documentation for proguard does not seem to work, and neither does the proguard config file in the demo application.
I had to download and install JDK 1.7 in order to build the project. Is this a known issue / should it be added to documentation? Or is there something that can be done to get it to work with 1.8?
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000) at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472) at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406) at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388) at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251) at com.android.dx.command.dexer.Main.processClass(Main.java:665) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634) at com.android.dx.command.dexer.Main.access$600(Main.java:78) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:596) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103) ...while parsing com/instagram/common/json/annotation/processor/JsonAnnotationProcessor$1.class
Hello,
Wondering why you decided to go with own annotations over say JsonProperty
and friends from https://github.com/FasterXML/jackson-annotations
The JavaWriter from Square seems to be packaged directly into ig-json-parser jar without being moved or renamed. This seems to cause conflict with other libraries which need a more recent version JavaWriter such as Dagger.
Why not using an external dependency on JavaWriter instead? At worse repackaging it (at least during the build if this causes later merge issues)?
I didn't see a built-in way to handle top-level arrays, e.g.:
[
{
"name": "Jorge",
"faveNumber": 4
},
{
...
}
]
Our current solution is to iterate through the array, making calls to the appropriate JsonHelper type for each object. Not a big deal really, but we'd need to duplicate this for each kind of model that's in a top-level array, since I don't see a way to generalize this into a helper method (anyone else?).
List<Video> videos = new LinkedList<Video>();
if (parser.nextToken() == JsonToken.START_ARRAY) {
while (parser.nextToken() != JsonToken.END_ARRAY) {
Video video = Video__JsonHelper.parseFromJson(parser);
videos.add(video);
}
}
Maybe JsonHelper types could know how to serialize/deserialize arrays of their model types. Something like:
public static final List<MyModel> parseFromJsonArray(JsonParser jp)
Seems to not work. Might be doing something wrong in the annotation
@JsonField(fieldName = "test_list",
valueExtractFormatter = "TestObject.TestEnum.valueOf(${parser_object}.getText())",
fieldAssignmentFormatter = "${object_varname}.${field_varname} = ${extracted_value}",
serializeCodeFormatter = "${generator_object}.writeStringField("${json_fieldname}", ${iterator}.toString())")
public List testList;
error: annotation exception: java.lang.IllegalStateException: Could not divine java type for test_list in class com.example.TestObject
at com.instagram.common.json.annotation.processor.JsonParserClassData.getJavaType(JsonParserClassData.java:407)
at com.instagram.common.json.annotation.processor.JsonParserClassData.generateArrayParser(JsonParserClassData.java:324)
at com.instagram.common.json.annotation.processor.JsonParserClassData.generateCollectionParser(JsonParserClassData.java:315)
at com.instagram.common.json.annotation.processor.JsonParserClassData.writeFields(JsonParserClassData.java:275)
at com.instagram.common.json.annotation.processor.JsonParserClassData.access$000(JsonParserClassData.java:40)
at com.instagram.common.json.annotation.processor.JsonParserClassData$1.emitJava(JsonParserClassData.java:159)
It would obviously be a little slower for parsing, but this would provide a huge amount of flexibility. At least making it optional would allow this to be used in cases where the content you are consuming is a little less uniform/well defined.
Hi,
In the new version of gradle, the 'android-apt'-pligin is no longer compatible.
now you have to user 'annotationProcessor' instatof 'apt'
so far so good.
I do the folowing:
Remove the class path for the apt from the build.gradle (Project: MyApplication)
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
Remove the plug in from the build.gradle (Module: app)
apply plugin: 'android-apt'
Change the dependencies from apt to the new annotationProcessor
annotationProcessor 'com.github.instagram.ig-json-parser:processor:master-SNAPSHOT'
gradle sync workes so far but the *__JsonHelper are not beeing generadet anymore!
Help?
Hi
I am trying to build the project but getting the below error:
1 warning
:util:processTestResources UP-TO-DATE
:util:testClasses
:util:test
:util:check
:util:build
:processorJar
:processorJavadoc
/home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/JsonFactoryHolder.java:5: error: package com.fasterxml.jackson.core does not exist
import com.fasterxml.jackson.core.JsonFactory;
^
/home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/JsonFactoryHolder.java:11: error: cannot find symbol
public static final JsonFactory APP_FACTORY = new JsonFactory();
^
symbol: class JsonFactory
location: class JsonFactoryHolder
/home/ubuntu/projects/ig-json-parser/util/src/main/java/com/instagram/common/json/annotation/util/Console.java:5: error: package javax.annotation.concurrent does not exist
import javax.annotation.concurrent.GuardedBy;
^
/home/ubuntu/projects/ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:31: error: package com.fasterxml.jackson.core does not exist
import com.fasterxml.jackson.core.JsonGenerator;
^
/home/ubuntu/projects/ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:32: error: package com.fasterxml.jackson.core does not exist
import com.fasterxml.jackson.core.JsonParser;
^
/home/ubuntu/projects/ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/JsonParserClassData.java:33: error: package com.fasterxml.jackson.core does not exist
import com.fasterxml.jackson.core.JsonToken;
^
/home/ubuntu/projects/ig-json-parser/processor/src/main/java/com/instagram/common/json/annotation/processor/StrFormat.java:8: error: package org.apache.commons.lang3.text does not exist
import org.apache.commons.lang3.text.StrSubstitutor;
^
/home/ubuntu/projects/ig-json-parser/util/src/main/java/com/instagram/common/json/annotation/util/Console.java:33: error: cannot find symbol
@GuardedBy("Console.class")
^
symbol: class GuardedBy
location: class Console
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:77: warning: no @param for packageName
public JavaWriter emitPackage(String packageName) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:77: warning: no @return
public JavaWriter emitPackage(String packageName) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:77: warning: no @throws for java.io.IOException
public JavaWriter emitPackage(String packageName) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:96: warning: no @param for types
public JavaWriter emitImports(String... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:96: warning: no @return
public JavaWriter emitImports(String... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:96: warning: no @throws for java.io.IOException
public JavaWriter emitImports(String... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:104: warning: no @param for types
public JavaWriter emitImports(Class... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:104: warning: no @return
public JavaWriter emitImports(Class... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:104: warning: no @throws for java.io.IOException
public JavaWriter emitImports(Class... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:116: warning: no @param for types
public JavaWriter emitImports(Collection types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:116: warning: no @return
public JavaWriter emitImports(Collection types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:116: warning: no @throws for java.io.IOException
public JavaWriter emitImports(Collection types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:136: warning: no @param for types
public JavaWriter emitStaticImports(String... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:136: warning: no @return
public JavaWriter emitStaticImports(String... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:136: warning: no @throws for java.io.IOException
public JavaWriter emitStaticImports(String... types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:144: warning: no @param for types
public JavaWriter emitStaticImports(Collection types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:144: warning: no @return
public JavaWriter emitStaticImports(Collection types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:144: warning: no @throws for java.io.IOException
public JavaWriter emitStaticImports(Collection types) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:175: warning: no @param for type
public String compressType(String type) {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:175: warning: no @return
public String compressType(String type) {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:243: warning: no @return
public JavaWriter beginInitializer(boolean isStatic) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:243: warning: no @throws for java.io.IOException
public JavaWriter beginInitializer(boolean isStatic) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:256: warning: no @return
public JavaWriter endInitializer() throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:256: warning: no @throws for java.io.IOException
public JavaWriter endInitializer() throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:268: warning: no @param for type
public JavaWriter beginType(String type, String kind) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:268: warning: no @return
public JavaWriter beginType(String type, String kind) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:268: warning: no @throws for java.io.IOException
public JavaWriter beginType(String type, String kind) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:277: warning: no @param for type
public JavaWriter beginType(String type, String kind, Set modifiers)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:277: warning: no @param for modifiers
public JavaWriter beginType(String type, String kind, Set modifiers)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:277: warning: no @return
public JavaWriter beginType(String type, String kind, Set modifiers)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:277: warning: no @throws for java.io.IOException
public JavaWriter beginType(String type, String kind, Set modifiers)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:288: warning: no @param for type
public JavaWriter beginType(String type, String kind, Set modifiers, String extendsType,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:288: warning: no @param for modifiers
public JavaWriter beginType(String type, String kind, Set modifiers, String extendsType,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:288: warning: no @param for implementsTypes
public JavaWriter beginType(String type, String kind, Set modifiers, String extendsType,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:288: warning: no @return
public JavaWriter beginType(String type, String kind, Set modifiers, String extendsType,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:288: warning: no @throws for java.io.IOException
public JavaWriter beginType(String type, String kind, Set modifiers, String extendsType,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:317: warning: no @return
public JavaWriter endType() throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:317: warning: no @throws for java.io.IOException
public JavaWriter endType() throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:326: warning: no @param for type
public JavaWriter emitField(String type, String name) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:326: warning: no @param for name
public JavaWriter emitField(String type, String name) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:326: warning: no @return
public JavaWriter emitField(String type, String name) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:326: warning: no @throws for java.io.IOException
public JavaWriter emitField(String type, String name) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:331: warning: no @param for type
public JavaWriter emitField(String type, String name, Set modifiers)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:331: warning: no @param for name
public JavaWriter emitField(String type, String name, Set modifiers)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:331: warning: no @param for modifiers
public JavaWriter emitField(String type, String name, Set modifiers)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:331: warning: no @return
public JavaWriter emitField(String type, String name, Set modifiers)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:331: warning: no @throws for java.io.IOException
public JavaWriter emitField(String type, String name, Set modifiers)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @param for type
public JavaWriter emitField(String type, String name, Set modifiers,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @param for name
public JavaWriter emitField(String type, String name, Set modifiers,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @param for modifiers
public JavaWriter emitField(String type, String name, Set modifiers,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @param for initialValue
public JavaWriter emitField(String type, String name, Set modifiers,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @return
public JavaWriter emitField(String type, String name, Set modifiers,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:337: warning: no @throws for java.io.IOException
public JavaWriter emitField(String type, String name, Set modifiers,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:372: warning: no @return
public JavaWriter beginMethod(String returnType, String name, Set modifiers,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:372: warning: no @throws for java.io.IOException
public JavaWriter beginMethod(String returnType, String name, Set modifiers,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:390: warning: no @return
public JavaWriter beginMethod(String returnType, String name, Set modifiers,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:390: warning: no @throws for java.io.IOException
public JavaWriter beginMethod(String returnType, String name, Set modifiers,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:448: warning: no @param for javadoc
public JavaWriter emitJavadoc(String javadoc, Object... params) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:448: warning: no @param for params
public JavaWriter emitJavadoc(String javadoc, Object... params) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:448: warning: no @return
public JavaWriter emitJavadoc(String javadoc, Object... params) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:448: warning: no @throws for java.io.IOException
public JavaWriter emitJavadoc(String javadoc, Object... params) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:468: warning: no @param for comment
public JavaWriter emitSingleLineComment(String comment, Object... args) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:468: warning: no @param for args
public JavaWriter emitSingleLineComment(String comment, Object... args) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:468: warning: no @return
public JavaWriter emitSingleLineComment(String comment, Object... args) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:468: warning: no @throws for java.io.IOException
public JavaWriter emitSingleLineComment(String comment, Object... args) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:492: warning: no @param for name
public JavaWriter emitEnumValue(String name, boolean isLast) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:492: warning: no @param for isLast
public JavaWriter emitEnumValue(String name, boolean isLast) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:492: warning: no @return
public JavaWriter emitEnumValue(String name, boolean isLast) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:492: warning: no @throws for java.io.IOException
public JavaWriter emitEnumValue(String name, boolean isLast) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:504: warning: no @param for names
public JavaWriter emitEnumValues(Iterable names) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:504: warning: no @return
public JavaWriter emitEnumValues(Iterable names) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:504: warning: no @throws for java.io.IOException
public JavaWriter emitEnumValues(Iterable names) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:520: warning: no @param for annotation
public JavaWriter emitAnnotation(String annotation) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:520: warning: no @return
public JavaWriter emitAnnotation(String annotation) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:520: warning: no @throws for java.io.IOException
public JavaWriter emitAnnotation(String annotation) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:525: warning: no @param for annotationType
public JavaWriter emitAnnotation(Class annotationType) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:525: warning: no @return
public JavaWriter emitAnnotation(Class annotationType) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:525: warning: no @throws for java.io.IOException
public JavaWriter emitAnnotation(Class annotationType) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:536: warning: no @param for annotationType
public JavaWriter emitAnnotation(Class annotationType, Object value)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:536: warning: no @return
public JavaWriter emitAnnotation(Class annotationType, Object value)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:536: warning: no @throws for java.io.IOException
public JavaWriter emitAnnotation(Class annotationType, Object value)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:548: warning: no @param for annotation
public JavaWriter emitAnnotation(String annotation, Object value) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:548: warning: no @return
public JavaWriter emitAnnotation(String annotation, Object value) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:548: warning: no @throws for java.io.IOException
public JavaWriter emitAnnotation(String annotation, Object value) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:560: warning: no @param for annotationType
public JavaWriter emitAnnotation(Class annotationType,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:560: warning: no @param for attributes
public JavaWriter emitAnnotation(Class annotationType,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:560: warning: no @return
public JavaWriter emitAnnotation(Class annotationType,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:560: warning: no @throws for java.io.IOException
public JavaWriter emitAnnotation(Class annotationType,
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:572: warning: no @param for annotation
public JavaWriter emitAnnotation(String annotation, Map attributes)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:572: warning: no @return
public JavaWriter emitAnnotation(String annotation, Map<String, ?> attributes)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:572: warning: no @throws for java.io.IOException
public JavaWriter emitAnnotation(String annotation, Map<String, ?> attributes)
^
/home/ubuntu/projects/ig-json-parser/javawriter/src/main/java/com/instagram/javawriter/JavaWriter.java:661: warning: no @param for args
public JavaWriter emitStatement(String pattern, Object... args) throws IOException {
^
/home/ubuntu/projects/ig-json-parser/util/src/main/java/com/instagram/common/json/annotation/util/ProcessorClassData.java:44: error: reference not found
^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:89: error: no summary or caption for table
^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:133: error: self-closing element not allowed
^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:148: error: invalid entity ✔
<td>✔</td>
^
<td>✔</td>
^
<td>✔</td>
^
<td>✗</td>
^
<td>✔</td>
^
<td>✗</td>
^
<td>✔</td>
^
<td>✔</td>
^
<td>✔</td>
^
<td>✗</td>
^
<td>✗</td>
^
<td>✔</td>
^
<td>✔</td>
^
<td>✗</td>
^
<td>✗</td>
^
<td>✔</td>
^
<td>✗</td>
^
<td>✗</td>
^
<td>✔</td>
^
<td>✗</td>
^
<td>✗</td>
^
<td>✔</td>
^
<td>✗</td>
^
<td>✔</td>
^
^ /home/ubuntu/projects/ig-json-parser/common/src/main/java/com/instagram/common/json/annotation/JsonField.java:49: error: reference not found
<td>the instance of {@link JsonParser} being read from
^
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':processorJavadoc'.
Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): '/home/ubuntu/projects/ig-json-parser/build/tmp/processorJavadoc/javadoc.options'
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Thank you
Farid
Not sure if it's a transient issue with jitpack but recently I've stopped being able to build a project that has ig-json-parser dependency:
> Could not resolve com.github.instagram.ig-json-parser:processor:master-SNAPSHOT.
> Unable to load Maven meta-data from https://jitpack.io/com/github/instagram/ig-json-parser/processor/master-SNAPSHOT/maven-metadata.xml.
> Could not HEAD 'https://jitpack.io/com/github/instagram/ig-json-parser/processor/master-SNAPSHOT/maven-metadata.xml'.
> Read timed out
The URL mentioned doesn't load on my computer. Could you confirm that README instructions still work?
Does this lib integrate with retrofit 2 ? if not are there plans to do it ?
Making a separate issue from this because it shouldn't be in the documentation issue...
Right now the generated source is in demo/igmodel/gen-src/main/java/com/instagram..., it should probably go in demo/build/generated/source/ig-gson/[variant]/com/instagram...
The current generated source is not flagged by the IDE as generated, so you can edit it and obviously it will be overwritten on next build. If you place the code in build/generated, you get a nice warning like this:
Hello,
butterknife is a default library to development, so I must use it!
But I would like to use json parser.
And this part of gradle block butterknife:
compileJava {
doFirst {
// Directory should exists before compilation started.
generatedSourcesDir.mkdirs()
}
options.compilerArgs += [
'-processor',
'com.instagram.common.json.annotation.processor.JsonAnnotationProcessor',
'-s',
generatedSourcesDir
]
}
What is the proper way to use both libraries together? Others recommended to use ig-json-parser with android-apt but I don't know how can I.
bg,
Larten
For some reason, it has plenty of errors, for example:
D:\android-studio\Android studioProjects\ig-json-parser\processor\support\src\main\java\com\instagram\common\json\annotation\processor\support\ExtensibleJSONWriter.java
Error:(7, 16) java: package org.json does not exist
Error:(8, 16) java: package org.json does not exist
Error:(30, 43) java: cannot find symbol
symbol: class JSONWriter
Error:(47, 64) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(56, 46) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(62, 49) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(68, 50) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(74, 52) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(80, 47) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(86, 55) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(92, 54) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(98, 52) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(104, 54) java: cannot find symbol
symbol: class JSONException
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(37, 53) java: cannot find symbol
symbol: class JSONException
location: interface com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter.Extender
Error:(57, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(55, 3) java: method does not override or implement a method from a supertype
Error:(63, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(61, 3) java: method does not override or implement a method from a supertype
Error:(69, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(67, 3) java: method does not override or implement a method from a supertype
Error:(75, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(73, 3) java: method does not override or implement a method from a supertype
Error:(81, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(79, 3) java: method does not override or implement a method from a supertype
Error:(87, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(85, 3) java: method does not override or implement a method from a supertype
Error:(93, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(91, 3) java: method does not override or implement a method from a supertype
Error:(99, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(97, 3) java: method does not override or implement a method from a supertype
Error:(105, 5) java: cannot find symbol
symbol: variable super
location: class com.instagram.common.json.annotation.processor.support.ExtensibleJSONWriter
Error:(103, 3) java: method does not override or implement a method from a supertype
Hi there
I'm facing an error, maybe someone can help.
To reproduce the error:
-Create a new project.
-Add the dependency (compile group: 'com.instagram', name: 'ig-json-parser-processor', version: '0.0.6+'
)
-Run the app.
My result: the gradle task ends with an error, aborting.
Here a screenshot:
I'm using Android Studio 2.2
I tried the solution of the screenshot but no luck.
Thanks in advice!
Might be a little early to talk about Proguard support, but I'm striking out trying to get it working. This error is from a barebones Android Studio project. Anyone else have any luck?
Edit: Only trying to shrink for now - no obfuscation.
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:proguardDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:289)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
at org.gradle.tooling.internal.provider.BuildModelAction.run(BuildModelAction.java:76)
at org.gradle.tooling.internal.provider.BuildModelAction.run(BuildModelAction.java:31)
at org.gradle.tooling.internal.provider.ConfiguringBuildAction.run(ConfiguringBuildAction.java:150)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:45)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:42)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.ReturnResult.execute(ReturnResult.java:34)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:71)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:69)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:45)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator.runCommand(DaemonStateCoordinator.java:186)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy.doBuild(StartBuildOrRespondWithBusy.java:49)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.HandleStop.execute(HandleStop.java:36)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.CatchAndForwardDaemonFailure.execute(CatchAndForwardDaemonFailure.java:32)
at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
at org.gradle.launcher.daemon.server.exec.DefaultDaemonCommandExecuter.executeCommand(DefaultDaemonCommandExecuter.java:51)
at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.handleCommand(DefaultIncomingConnectionHandler.java:155)
at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.receiveAndHandleCommand(DefaultIncomingConnectionHandler.java:128)
at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.run(DefaultIncomingConnectionHandler.java:116)
at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:695)
Caused by: org.gradle.internal.UncheckedException: java.io.IOException: Please correct the above warnings first.
at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:39)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:66)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 70 more
Caused by: java.io.IOException: Please correct the above warnings first.
at proguard.Initializer.execute(Initializer.java:369)
at proguard.ProGuard.initialize(ProGuard.java:211)
at proguard.ProGuard.execute(ProGuard.java:86)
at proguard.gradle.ProGuardTask.proguard(ProGuardTask.java:1074)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
... 77 more
Haven't been able to get the full strack trace, even w/ --full-stacktrace command..
stupid programmers who are not even able to make a simple upload. The stupid developer team of Instagram is not working for the suspand accounts. Ajax request are all wrong, you don't answer any email, so what do you do!
Lists are supported, adding support for Map types would be very helpful.
I'm importing the project (Import->Gradle Project), generating the model but with no success. The projects not compile and I don't have the option when right click on demo to run as Android application. Could you guide us on how to get it work?
Thanks in advice
Currently the link returns https://dl.bintray.com/ezaquarii/android/com/github/instagram/ig-json-parser/runtime/master-SNAPSHOT/maven-metadata.xml returning 404.
More information about the shut down can be found here: https://blog.gradle.org/jcenter-shutdown
Please republish the package on maven central or something similar.
I got warning message when I build release apk for my app
"Warning: com.instagram.common.json.annotation.processor.JsonAnnotationProcessor: can't find referenced field 'javax.annotation.processing.ProcessingEnvironment processingEnv' in program class com.instagram.common.json.annotation.processor.JsonAnnotationProcessor"
But when I add "-dontwarn com.instagram.common.json.annotation.processor.", it can be fixed.
Does not matter if I put "-dontwarn com.instagram.common.json.annotation.processor." in proguard file? Thanks
Currently with jackson subtypes it is possible to use for polymorphic structure. I don't see equivalent feature in ig-json. Is this achievable in some other ways or any workaround?
Jackson example:
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY)
@JsonSubTypes({
@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
@JsonSubTypes.Type(value = Cat.class, name = "Cat") }
)
public abstract class Animal {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Then
public class Dog extends Animal {
private String breed;
public Dog() {
}
public Dog(String name, String breed) {
setName(name);
setBreed(breed);
}
public String getBreed() {
return breed;
}
public void setBreed(String breed) {
this.breed = breed;
}
}
public class Cat extends Animal {
public String getFavoriteToy() {
return favoriteToy;
}
public Cat() {}
public Cat(String name, String favoriteToy) {
setName(name);
setFavoriteToy(favoriteToy);
}
public void setFavoriteToy(String favoriteToy) {
this.favoriteToy = favoriteToy;
}
private String favoriteToy;
}
And then:
public class Test {
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
Animal myDog = new Dog("ruffus","english shepherd");
Animal myCat = new Cat("goya", "mice");
try {
String dogJson = objectMapper.writeValueAsString(myDog);
System.out.println(dogJson);
Animal deserializedDog = objectMapper.readValue(dogJson, Animal.class);
System.out.println("Deserialized dogJson Class: " + deserializedDog.getClass().getSimpleName());
String catJson = objectMapper.writeValueAsString(myCat);
Animal deseriliazedCat = objectMapper.readValue(catJson, Animal.class);
System.out.println("Deserialized catJson Class: " + deseriliazedCat.getClass().getSimpleName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Some projects have deep class hierarchies where member fields are inaccessible. If JsonField
could be applied to arguments, this would be easy to overcome.
Example:
class Fuu extends Fu {
public Fuu(@JsonField(fieldName="le_fu") boolean leFu) {
super(leFu);
}
}
The exception from the Eclipse .log file is as follows:
!ENTRY org.eclipse.jdt.apt.pluggable.core 1 1 2015-01-27 00:48:04.922
!MESSAGE annotation exception: java.lang.NullPointerException cause: java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1234)
at java.util.regex.Matcher.reset(Matcher.java:308)
at java.util.regex.Matcher.(Matcher.java:228)
at java.util.regex.Pattern.matcher(Pattern.java:1088)
at java.util.Formatter.parse(Formatter.java:2515)
at java.util.Formatter.format(Formatter.java:2469)
at java.util.Formatter.format(Formatter.java:2423)
at java.lang.String.format(String.java:2790)
at com.instagram.javawriter.JavaWriter.emitStatement(JavaWriter.java:663)
at com.instagram.common.json.annotation.processor.JsonParserClassData.writeSerializeCalls(JsonParserClassData.java:514)
at com.instagram.common.json.annotation.processor.JsonParserClassData.access$200(JsonParserClassData.java:39)
at com.instagram.common.json.annotation.processor.JsonParserClassData$2.emitJava(JsonParserClassData.java:199)
at com.instagram.javawriter.JavaWriter.emitWithGenerator(JavaWriter.java:72)
at com.instagram.common.json.annotation.processor.JsonParserClassData.getJavaCode(JsonParserClassData.java:183)
at com.instagram.common.json.annotation.processor.JsonAnnotationProcessor.process(JsonAnnotationProcessor.java:101)
at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:139)
at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:121)
at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:159)
at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:134)
at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:820)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:434)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:366)
at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.compile(IncrementalImageBuilder.java:329)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:303)
at org.eclipse.jdt.internal.core.builder.IncrementalImageBuilder.build(IncrementalImageBuilder.java:134)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildDeltas(JavaBuilder.java:265)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:193)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:733)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
After going through the demo and unit test projects it took me almost 3 hours to realize how to make this to work. The current documentation only talks about annotating classes and misses consumption and generation of JSON. Proper documentation + Wiki is a must.
As per gradle dependencies versions :
| +--- com.instagram:ig-json-parser-processor:0.0.6
| | +--- com.fasterxml.jackson.core:jackson-core:[2.2.3,) -> 2.9.0-SNAPSHOT
| | +--- com.google.guava:guava:[12.0.1,) -> 21.0-SNAPSHOT
| | \--- org.apache.commons:commons-lang3:[3.1,) -> 3.5
ig-json-parser now will get Guava 21 which is only JDK8 compatible :
The coming release (21.0) will require JDK 1.8, but we will begin providing a backport soon thereafter.
(see https://github.com/google/guava).
It totally breaks apps running on JDK7.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.