Estate atento ya que en este tutorial encontrarás el hallazgo que buscas.
Solución:
Usé la API simple de JSON para ordenar esto. Aquí está mi código:
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class SortJSON
public static void main(String[] args)
JSONParser parser = new JSONParser();
try
JSONObject o = (JSONObject) parser.parse(new FileReader("test3.json"));
JSONArray array = (JSONArray) o.get("results");
ArrayList list = new ArrayList<>();
for (int i = 0; i < array.size(); i++)
list.add((JSONObject) array.get(i));
Collections.sort(list, new MyJSONComparator());
for (JSONObject obj : list)
System.out.println(((JSONObject) obj.get("attributes")).get("OBJECTID"));
catch (Exception e)
e.printStackTrace();
class MyJSONComparator implements Comparator
@Override
public int compare(JSONObject o1, JSONObject o2)
String v1 = (String) ((JSONObject) o1.get("attributes")).get("COMMERCIALNAME_E");
String v3 = (String) ((JSONObject) o2.get("attributes")).get("COMMERCIALNAME_E");
return v1.compareTo(v3);
Analice estos JSON en la colección de objetos y use el comparador para ordenarlos usando su campo preferido.
- Use GSON para analizarlo en una colección de objetos
Ejemplo:
import com.google.gson.Gson;
class Person
private int age;
private String name;
String json = "'age':22,'name':'Jigar'";
Gson gson = new Gson();
TestJsonFromObject obj = gson.fromJson(json, Person.class);
Si desea crear JSON desde Object.
Person p = new Person();
p.setName("Jigar");
p.setAge(22);
String jsonStr = new com.google.gson.Gson().toJson(obj);
solía jackson para hacerlo. A continuación se muestra la implementación del método de ordenación, probablemente pueda agregarle más controles y agregar un tipo de retorno
public void sort(String data) throws IOException
JsonNode node = new ObjectMapper().readTree(data);
ArrayNode array = (ArrayNode) node.get("results");
Iterator i =array.elements();
List list = new ArrayList<>();
while(i.hasNext())
list.add(i.next());
list.sort(Comparator.comparing(o -> o.get("attributes").get("COMMERCIALNAME_E").asText()));
valoraciones y reseñas
Si para ti ha resultado de utilidad nuestro artículo, agradeceríamos que lo compartas con otros seniors así contrubuyes a extender este contenido.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)