জাভা অ্যারে একই টাইপের একাধিক ভেরিয়েবল সংরক্ষণকারী অবজেক্ট, যা প্রিমিটিভ টাইপ এবং অবজেক্ট রেফারেন্স দুটোই ধারণ করতে পারে। অন্যদিকে JSONArray একটি অর্ডারড সিকোয়েন্স অফ ভ্যালু। এর এক্সটার্নাল টেক্সট ফর্ম হল স্কোয়ার ব্র্যাকেটে লিপटा কমা-সেপারেটেড স্ট্রিং, ইন্টার্নাল ফর্ম হল get() এবং opt() মেথড বিশিষ্ট অবজেক্ট ইনডেক্স বেসড অ্যাক্সেসের জন্য, এবং element() মেথড ভ্যালু অ্যাড বা রিপ্লেস করার জন্য। প্রথমে Object[] অ্যারে তৈরি করে JSONSerializer ক্লাসের toJSON() মেথডে আর্গুমেন্ট হিসেবে পাস করে টাইপকাস্ট করে JSON অ্যারে পাওয়া যায়।
উদাহরণ
import net.sf.json.JSONArray;
import net.sf.json.JSONSerializer;
public class ConvertArrayToJSONArrayTest {
public static void main(String[] args) {
Object[] objArray = new Object[] {
"Array to JSON Array",
new Integer(10),
new Long(30),
new Double(14.26),
true,
new char[] {'X', 'Y', 'Z'}
};
JSONArray jsonArray = (JSONArray)JSONSerializer.toJSON(objArray);
System.out.println(jsonArray.toString(3)); // প্রিটি প্রিন্ট JSON
}
}
আউটপুট
[
"Array to JSON Array",
10,
30,
14.26,
true,
[
"X",
"Y",
"Z"
]
]
মূল নোট
- প্রিমিটিভ অ্যারে (int[], double[]) ডাইরেক্টলি পাস করলে Object[]-এ অটোবক্সিং হয় না - Wrapper অ্যারে (Integer[], Double[]) বা Object[] ব্যবহার করুন
- char[] স্পেশ্যাল হ্যান্ডলিং: JSON অ্যারে হিসেবে কনভার্ট হয়
- মাল্টিডাইমেনশনাল অ্যারে: নেস্টেড JSON অ্যারে হিসেবে কনভার্ট হয়
আধুনিক বিকল্প (Jackson/Gson)
// Jackson
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(objArray);
// Gson
Gson gson = new Gson();
String json = gson.toJson(objArray);