(Я новичок в данных JSON, поэтому моя терминология может не соответствовать действительности) (Если вы не понимаете мой вопрос, прокомментируйте, пожалуйста, почему) Я беру JSON данные из API и сохраняю их в. json файл. Данные, которые поступают, форматируются следующим образом:
{
"success": 1,
"trails": [
{
"summary": "Grand, scenic views, begins fast \u0026 smooth, becomes very technical, epic singletrack.",
"imgSmallMed": "https://cdn-files.apstatic.com/mtb/7000093_smallMed_1554393017.jpg",
"latitude": 32.7071,
"length": 10.3,
"stars": 4.5,
"type": "Ride",
"starVotes": 2,
"conditionDate": "1970-01-01 00:00:00",
"difficulty": "black",
"descent": -6257,
"high": 9356,
"ascent": 203,
"conditionStatus": "Unknown",
"low": 3303,
"name": "Ash Creek",
"location": "Swift Trail Junction, Arizona",
"id": 7000218,
"imgSqSmall": "https://cdn-files.apstatic.com/mtb/7000093_sqsmall_1554393017.jpg",
"longitude": -109.9103
},
{
"summary": "Roadside access and scenic views. Begins slow and smooth, then gets techy, followed by an adrenaline-pumping downhill!",
"imgSmallMed": "",
"latitude": 32.6626,
"length": 3.1,
"stars": 4,
"type": "Ride",
"starVotes": 1,
"url": "https://www.mtbproject.com/trail/7050395/noon-creek-loop",
"imgSmall": "",
"imgMedium": "",
"conditionDate": "1970-01-01 00:00:00",
"difficulty": "black",
"descent": -604,
"high": 5711,
"ascent": 585,
"conditionStatus": "Unknown",
"low": 5184,
"name": "Noon Creek Loop",
"location": "Swift Trail Junction, Arizona",
"id": 7050395,
"imgSqSmall": "",
"longitude": -109.8013
},
{
"summary": "Two short single tracks connected by old jeep trails with two excellent view points.",
"imgSmallMed": "https://cdn-files.apstatic.com/mtb/7011629_smallMed_1554839996.jpg",
"latitude": 32.6792,
"length": 10.3,
"stars": 3.5,
"type": "Ride",
"starVotes": 4,
"conditionDate": "1970-01-01 00:00:00",
"difficulty": "blue",
"descent": -1127,
"high": 9442,
"ascent": 1130,
"conditionStatus": "Unknown",
"low": 8727,
"name": "Grant Hill and Cunningham Trails",
"location": "Swift Trail Junction, Arizona",
"id": 3963377,
"imgSqSmall": "https://cdn-files.apstatic.com/mtb/7011629_sqsmall_1554839996.jpg",
"longitude": -109.8942
}
]
}
Я пытался отсортировать эти данные и просто получить имя, широту, долготу и сложность каждого из объектов. То, что я хочу распечатать или сохранить в файле. json, это значение «имя», «сложность», «широта» и «долгота» для каждого из объектов.
Так что же Я хочу, чтобы это произошло, если я хочу go пройти через каждый объект в «следах», получить значения «name», «затруднение», «широта» и «долгота» и сохранить эти значения в текстовом файле. Таким образом, должно быть все oop, где код циклически перебирает каждый объект в «следах», захватывает и хранит значения «имя», «сложность», «широта» и «долгота». Но происходит то, что все значения в каждом объекте в «следах» (например, «сводка», «длина», «звезды») хранятся в одной строке (для каждого объекта) в текстовом файле или просто выводятся как одна строка в консоли. Мне нужно игнорировать некоторые из этих значений (например, игнорировать «сводка») и просто получить «имя», «сложность», «широта» и «долгота». А также иметь возможность хранить «имя», «сложность», «широту» и «долготу» в отдельных строках. (Надеюсь, это понятно). Это то, что следует сохранить из приведенных выше данных:
"latitude": 32.7071,
"difficulty": "black",
"name": "Ash Creek",
"longitude": -109.9103
"latitude": 32.6626,
"difficulty": "black",
"name": "Noon Creek Loop",
"longitude": -109.8013
"latitude": 32.6792,
"difficulty": "blue",
"name": "Grant Hill and Cunningham Trails",
"longitude": -109.8942
Я могу отделить каждый объект, но не могу разобрать каждый объект и получить заданные значения c. Это код, над которым я работал:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class ReadJSON
{
public static void main(String args[])
{
JSONParser parser = new JSONParser();
try
{
Object object = parser.parse(new FileReader("trails6copy.json"));
JSONObject jsonObject = (JSONObject)object;
JSONArray trails = (JSONArray)jsonObject.get("trails");
String sum = (String) trails.get(0);
System.out.println(sum);
for(Object trail : trails)
{
FileWriter writer = new FileWriter("trailSorter.txt",false);
writer.write(trail.toString());
writer.close();
}
}
catch(FileNotFoundException fee)
{
fe.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
ПОЖАЛУЙСТА, ПОМОГИТЕ !!! Я застрял на этой неделе !!