разбор json с муравьем - PullRequest
       24

разбор json с муравьем

7 голосов
/ 27 марта 2010

У меня есть скрипт сборки ant, который должен загружать файлы с веб-сервера. Я могу использовать задачу «get», чтобы вытащить эти файлы один за другим. Тем не менее, я хотел бы иметь возможность сначала получить список этих файлов, а затем перебрать список с помощью команды «get» для загрузки файлов. Веб-сервер сообщит список файлов в формате json, но я не уверен, как анализировать json с помощью ant.

Существуют ли какие-либо плагины для муравьев, которые позволяют анализировать json?

Ответы [ 3 ]

9 голосов
/ 21 декабря 2010

Я использовал предложение Дейва выше, и оно сработало довольно хорошо. Вот что я придумал:

(Обратите внимание, я вырвал это из моего фактического файла сборки и попытался удалить что-то конкретное и просто оставить части примера, так что извините, если что-то отсутствует или что-то еще, но это должно дать вам представление о том, как это работает) .

<?xml version="1.0"?>

<project name="jsonExample" default="all">
<target name="all" depends="example" />

<target name="example">

<!-- This uses Rhino - an Open Source implementation of JavaScript written in Java -
     to parse JSON. -->
<script language="javascript"> <![CDATA[

    importClass(java.io.File);
    importClass(java.io.FileReader);
    importClass(java.io.BufferedReader);
    importClass(java.io.FileWriter);
    importClass(java.io.BufferedWriter);

    var file = new File("/path/to/myJSON.js");
    fr = new FileReader(file);
    br = new BufferedReader(fr);

    // Read the file we just retrieved from the webservice that contains JSON.
    var json = br.readLine();

    // Evaluate the serialized JSON
    var struct = eval("(" + json + ")");

    // Get the data from 
    var value = struct.data.VALUE;

    echo = example.createTask("echo");
    echo.setMessage("Value = " + value);
    echo.perform();

    ]]>
</script>
</target>

5 голосов
/ 29 марта 2010

Вы можете использовать задачу для запуска JavaScript для декодирования вашего JSON .

0 голосов
/ 09 апреля 2019

Вот макрос, который я использую для загрузки свойств json.

 <macrodef name="json-properties">
     <attribute name="jsonFile"/>
     <sequential>
         <local name="_jsonFile"/>
         <property name="_jsonFile" value="@{jsonFile}"/>
         <script language="javascript">//<![CDATA[
             var json = new Packages.java.lang.String(
                 Packages.java.nio.file.Files.readAllBytes(
                     Packages.java.nio.file.Paths.get(project.getProperty("_jsonFile"))), "UTF-8");
             var properties = JSON.parse(json);
             for(key in properties) {
                 project.setProperty(key, properties[key]);
             }
     //]]></script>
     </sequential>
 </macrodef>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...