I am trying to parse a JSON Array from a .txt file with processing. However I keep on getting this error:
java.lang.RuntimeException: A JSONArray text must start with '['
at processing.data.JSONArray.<init>(JSONArray.java:140)
at processing.data.JSONArray.<init>(JSONArray.java:126)
at processing.core.PApplet.parseJSONArray(PApplet.java:5494)
at sketch_230108a.fileSelected(sketch_230108a.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at processing.core.PApplet.selectCallback(PApplet.java:5966)
at processing.awt.ShimAWT.selectImpl(ShimAWT.java:835)
at processing.awt.ShimAWT.lambda$selectInput$0(ShimAWT.java:742)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
I tried this code:
PrintWriter output;
String data = "[ \"Capra hircus\", \"Panthera pardus\", \""+"90"+"\" ]";
void setup() {
output = createWriter("positions.txt");
output.print(data);
output.flush();
output.close();
selectInput("Select a file to process:", "fileSelected");
}
void fileSelected(File selection) {
JSONArray json = parseJSONArray(selection.toString());
if (json == null) {
println("JSONArray could not be parsed");
} else {
String species = json.getString(0);
println(species);
}
}
I am trying to get an output of Capra hircus, however I just get a JSONArray could not be parsed, and the error.