动态创建JSON对象数组

时间:2014-10-18 15:09:24

标签: java json dynamic

这是我对成绩册计划的继续。我一直在发布与JSON相关的问题,并将两个应用程序连接到StackOverflow,因为我在使用该部分时非常困难。

我一直在尝试创建一个HTTP POST请求,该请求使用JSON将信息从Java成绩簿应用程序发送到Rails基于Web的应用程序,该应用程序以报告的形式向学生显示这些等级。

最终,我想发送的不只是一个学生的信息。此外,每个学生可能有0到50个作业,作业说明,以及这些作业的成绩。最重要的是,将有多个班级/课程的学生。所有这些信息都需要"读入"到JSON对象。有没有人有任何关于如何修改此代码的建议,以便我可以发送所有数据? 我能够获取与JSON相关的代码部分的最远部分如下所示。但是,需要修改该代码,如以下问题所示。 1.如何动态创建JSON对象数组而不是如下所示(因为课程,学生和成绩会有所不同并从Java程序中读取)? 2.如何合成/组合下面的三个JSON对象数组以使其工作?我的想法是,我编写了课程对象数组,然后以某种方式将学生对象数组作为每个课程对象的一部分嵌入,然后以某种方式将成绩对象数组嵌入到每个学生对象的一部分中。

 {‘JSONArrayOfCourseObjects’ : [{‘courseID’ : ‘Botany101FallSemester’, ‘courseInstructor’ : 
  ‘Mr.  Smith’}, {‘courseID’ : ‘Physics101FallSemester’, ‘courseInstructor’ : ‘Mrs. Newton}, 
   etc.]}

 {‘JSONArrayOfStudentObjects’ : [{‘Name’ : ‘John Doe’, ‘StudentID’ : ‘12345678’, ‘Address’ :
  ‘1234 Main Street’}, {‘Name’ : ‘Don Corleone’, ‘StudentID’ : ‘87654321’, ‘Address’ : 
  ‘121 Walberry Ave’}, etc.]}

 {‘JSONArrayOfGradeObjects’ : [{‘nameOfAssignment’ : ‘Irrigation Homework 1’, 
  ‘dateOfAssignment’ : ‘Sept 1, 2014’, ‘categoryOfAssignment’ : ‘Homework’}, 
  {‘nameOfAssignment’ : ‘Test 1’, ‘dateOfAssignment’ : ‘Sept 14, 2014’, ‘categoryOfAssignment’ :
   ‘Test’}, etc.]}

1 个答案:

答案 0 :(得分:0)

JSONlib是用于生成快速且脏的JSON的最简单的Java API。它拥有构建对象并将其转换为文本所需的一切。如果你需要更强大的东西,那就是GSon和Jackson。

Here are some samples。这个例子是在Groovy中,所以它不是复制和可粘贴的,但它会告诉你如何使用它:

def array = new JSONArray()
new File("/path/to/grades/files").eachFile { file ->
    String rawJson = file.text
    JSONObject obj = (JSONObject ) JSONSerializer.toJSON( rawJson )
    array = array.element(obj)
})
println array.toString(5) //Use 5 character indentation