Shai-Hulud Δημοσ. 17 Ιανουαρίου 2018 Δημοσ. 17 Ιανουαρίου 2018 Σε Android, παίρνω από ένα query ένα table με δεδομένα αυτής της μορφής (τα οποία η db ονομάζει json observable) "{"group":{"operator":"AND","rules":[{"condition":"=","field":"OB_58","data":"moderate"},{"condition":"=","field":"OB_64","data":"male"}]}}" Το συγκεκριμένο string εκφράζει τη λογική συνθήκη "OB_58 = 'moderate' AND OB_64 = 'male'" Το αρχικό table (αν κρίνω από τα αποτελέσματα στο google) πρέπει να το επεξεργαστώ με jsoup, αλλά δεν έχει json parser. Αξίζει να κατεβάσω και 2ο parser ή να χρησιμοποιήσω το default του Android; Υπάρχει κάποιο API που να κάνει και τα 2; Η λογική συνθήκη φάινεται απλή, μηπως υπάρχει έτοιμος parser για αυτό;
ktiniatros Δημοσ. 17 Ιανουαρίου 2018 Δημοσ. 17 Ιανουαρίου 2018 Στο project που δουλεύω τώρα χρησιμοποιούμε GSON: import com.google.gson.GsonBuilder; import com.google.gson.stream.JsonReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.List; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); final InputStream stream = new ByteArrayInputStream("{\"group\":{\"operator\":\"AND\",\"rules\":[{\"condition\":\"=\",\"field\":\"OB_58\",\"data\":\"moderate\"},{\"condition\":\"=\",\"field\":\"OB_64\",\"data\":\"male\"}]}}".getBytes(StandardCharsets.UTF_8)); try { Query query = parse(stream); System.out.println("The operator is: " + query.getGroup().getOperator()); } catch (IOException exception) { exception.printStackTrace(); } } private class Rule { private String condition; private String field; private String data; public String getCondition() { return condition; } public void setCondition(String condition) { this.condition = condition; } public String getField() { return field; } public void setField(String field) { this.field = field; } public String getData() { return data; } public void setData(String data) { this.data = data; } } private class Group { private String operator; private List<Rule> rules; public String getOperator() { return operator; } public void setOperator(String operator) { this.operator = operator; } public List<Rule> getRules() { return rules; } public void setRules(List<Rule> rules) { this.rules = rules; } } private class Query { public Group getGroup() { return group; } public void setGroup(Group group) { this.group = group; } private Group group; } private Query parse(InputStream inputStream) throws IOException { final JsonReader jsonReader = new JsonReader(new InputStreamReader(inputStream, Constants.UTF8_FORMAT)); final Query obj = new GsonBuilder().create().fromJson(jsonReader, Query.class); jsonReader.close(); return obj; } στο build.gradle: compile "com.google.code.gson:gson:2.8.0"
Shai-Hulud Δημοσ. 18 Ιανουαρίου 2018 Μέλος Δημοσ. 18 Ιανουαρίου 2018 Ερώτηση: τις συναρτήσεις setRules, setGroup, κλπ πρέπει να τις χρησιμοποιήσω κάπου ή τις αναγνωρίζει και τις χρησιμοποιεί αυτόματα ο GsonBuilder?
Shai-Hulud Δημοσ. 20 Ιανουαρίου 2018 Μέλος Δημοσ. 20 Ιανουαρίου 2018 σ ευχαριστώ, τώρα παίζω με Jsoup, μόλις βγάλω σωστ΄λα δεδομένα θα δοκιμάσω και το gson αμέσως μετά
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα