La conversion de JSON en Java dépend en grande partie de la bibliothèque que vous utilisez pour effectuer cette tâche. Les autres réponses ici utilisent la bibliothèque org.json
mais la plupart des geeks réagiront violemment à son utilisation parce qu'elle est assez lente. La bibliothèque la plus rapide que je connaisse est Jackson, mais je préfère personnellement Google-GSON parce qu'elle est suffisamment rapide tout en restant très facile à utiliser.
En regardant votre exemple de chaîne, vous semblez avoir un tableau de tableaux de chaînes. Dans Gson, il faut les considérer comme des tableaux de chaînes de caractères. Collection
d'un Collection
de String
s. Voici un exemple de code :
import java.lang.reflect.Type;
import java.util.Collection;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class Main {
public static void main(String[] args) {
// your sample JSON string, converted to a java string
String json = "[\n [\n \"sn1\",\n \"Liquid_level\",\n \"85\"\n ],\n [\n \"sn2\",\n \"Liquid_level,Temperature\",\n \"95\"\n ],\n [\n \"sn2\",\n \"Liquid_level,Temperature\",\n \"50\"\n ],\n [\n \"sn3\",\n \"Liquid_level\",\n \"85.7\"\n ],\n [\n \"sn4\",\n \"Liquid_level\",\n \"90\"\n ],\n [\n \"sn5\",\n \"Volt_meter\",\n \"4.5\"\n ],\n [\n \"sn6\",\n \"Temperature\",\n \"56\"\n ],\n [\n \"sn8\",\n \"Liquid_level\",\n \"30\"\n ]\n]";
// instantiate a Gson object
Gson gson = new Gson();
// define the type of object you want to use it in Java, which is a collection of a collection of strings
Type collectionType = new TypeToken<Collection<Collection<String>>>(){}.getType();
// happiness starts here
Collection<Collection<String>> stringArrays = gson.fromJson(json, collectionType);
// simply print out everything
for (Collection<String> collection : stringArrays) {
for (String s : collection) {
System.out.print(s + ", ");
}
System.out.println();
}
}
}
Et le résultat :
sn1, Liquid_level, 85,
sn2, Liquid_level,Temperature, 95,
sn2, Liquid_level,Temperature, 50,
sn3, Liquid_level, 85.7,
sn4, Liquid_level, 90,
sn5, Volt_meter, 4.5,
sn6, Temperature, 56,
sn8, Liquid_level, 30,
Cette information est tirée du guide de l'utilisateur de Google-GSON : https://sites.google.com/site/gson/gson-user-guide#TOC-Collections-Examples