All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kawanfw.sql.json.StringArrayTransport Maven / Gradle / Ivy

Go to download

AceQL combines a virtual JDBC Driver and a framework to enable remote JDBC access over HTTP. Android and Java Desktop application developers can access remote SQL databases in the cloud by simply including standard JDBC calls in their code, just like they would for a local database.

The newest version!
/*
 * This file is part of AceQL. 
 * AceQL: Remote JDBC access over HTTP.                                     
 * Copyright (C) 2015,  KawanSoft SAS
 * (http://www.kawansoft.com). All rights reserved.                                
 *                                                                               
 * AceQL is free software; you can redistribute it and/or                 
 * modify it under the terms of the GNU Lesser General Public                    
 * License as published by the Free Software Foundation; either                  
 * version 2.1 of the License, or (at your option) any later version.            
 *                                                                               
 * AceQL is distributed in the hope that it will be useful,               
 * but WITHOUT ANY WARRANTY; without even the implied warranty of                
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU             
 * Lesser General Public License for more details.                               
 *                                                                               
 * You should have received a copy of the GNU Lesser General Public              
 * License along with this library; if not, write to the Free Software           
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  
 * 02110-1301  USA
 *
 * Any modifications to this file must keep this entire header
 * intact.
 */
package org.kawanfw.sql.json;

import java.util.Arrays;
import java.util.List;

import org.json.simple.JSONArray;
import org.json.simple.JSONValue;
import org.kawanfw.commons.util.FrameworkDebug;

/**
 * @author Nicolas de Pomereu
 * 
 *         Class to transport String arrays between PC and Host with JSON
 */
public class StringArrayTransport {

    /** Debug flag */
    private static boolean DEBUG = FrameworkDebug
	    .isSet(StringArrayTransport.class);

    /**
     * 
     */
    protected StringArrayTransport() {
    }

    /**
     * Format for JSON String a string array
     * 
     * @param StringArray
     *            a string array
     * 
     * @return the formated JSON string ready for transport
     */

    public static String toJson(String[] stringArray) {

	List list = Arrays.asList(stringArray);

	String jsonString = JSONValue.toJSONString(list);
	debug("jsonString: " + jsonString);
	return jsonString;
    }

    /**
     * Transform a Json string to an array of strings
     * 
     * @param jsonString
     *            the json formatted string
     * @return the corresponding decoded array of strings
     */
    public static String[] fromJson(String jsonString) {
	// Gson gson = new Gson();
	// String[] types = gson.fromJson(jsonString, String[].class);
	// return types;

	debug("in public static String[] fromJson(String jsonString)");

	Object obj = JSONValue.parse(jsonString);
	JSONArray jsonArray = (JSONArray) obj;

	String stringArray[] = new String[jsonArray.size()];

	for (int i = 0; i < jsonArray.size(); i++) {
	    stringArray[i] = (String) jsonArray.get(i);
	}

	// free objects
	obj = null;
	jsonArray = null;

	return stringArray;

    }

    /**
     * Debug
     * 
     * @param s
     */
    public static void debug(String s) {
	if (DEBUG) {
	    System.out.println(s);
	}
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy