درخواست رهنمایی در مورد نوشتن کد JSON
سلام عزیزان خسته نباشید.
من برای تکمیل پروژم نیاز به نوشتن کد JSON در محیط ASP دارم. به این صورت که یکبار اطلاعات مشتریان از بانک آنلاین خونده میشه و توی بانک SQLite کپی میشه و یکبار دیگه اطلاعات محصولات از بانک آنلاین خونده و توی SQLite کپی میشه.
و بار سوم، اطلاعات محصولات انتخاب شده داخل SQLite به بانک آنلاین فرستاده میشه.
من پروژه اندرویدم رو تموم کردم و فقط مونده ارتباط با نرم افزاری که با ASP نوشته شده. البته این ارتباط فقط و فقط از طریق بانک هستش. یعنی اطلاعات از اندروید به بانک آنلاین فرستاده میشه و نرم افزار ASP اونارو از بانک میخونه. حالا توش موندم این کارا رو چجوری انجام بدم. اگه لطف کنید و مراحل کار رو برام توضیح بدین، بینهایت ممنون میشم. یعنی مرحله به مرحله باید چیکار کنم.
و یه سوال کوچیک دیگه که آیا میشه بدون نوشتن کد JSON با SQL Server ارتباط برقرار کرد و اطلاعات SQLite رو بهش فرستاد؟
البته میدونم باعث زحمته و ازین بابت عذر میخوام ولی چاره ای نداشتم جز پرسش!.
سپاس
یه مثال میزنم
از سرور اطلاعات مشتری رو میگیری (فرض اینه که مشکلی تو استفاده از وب سرویس نیست) :
[{id:1,name:'...'},{id:2,name:'...'},{id:3,name:'...'}]
کاری هم نداری که با ASP ساخته شده یا PHP یا هر چیز دیگه. سمت خودت باید اینا رو بریزی تو دیتابیس . یا از orm استفاده میکنی یا مستقیم مینویسی. نیاز داری به پارسی کردن رشته json . برای همین اول ساختار اطلاعات رو تعریف میکنی :
public class CustomerStruct{
public int id;
public String name;
}
حالا با استفاده از gson یه لیست از رو رشته میسازی:
public static <T> ArrayList<T> toList(String json, Type token) {
if (json == null)
return new ArrayList<T>();
try {
Gson gson = new Gson();
List<T> list = gson.fromJson(json, token);
return list == null ? new ArrayList<T>() : new ArrayList<T>(list);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
این متد نیاز به یه توکن داره که اونم اینطور تعریف میشه :
new TypeToken<List<StructNote>>(){}.getType()
حالا اگه از orm استفاده میکنی مستقیما این لیست رو میریزی تو دیتابیس. اگر هم کد دستی مینویسی که به ازای هر آیتم لیست، رشته insert تشکیل میدی و رو دیتابیس اجرا میکنی. برای کالا هم به همین ترتیب.
برای ارسال گزارش خرید هم رشته json رو باید بسازی
[{customerId:12,productId:5},{customerId:1,productId:15}]
این رشته رو هم میتونی دستی بسازی و یا باز هم یه لیست از یه استراکت تهیه کنی و اونو با gson تبدیل به رشته کنی :
public static String toJson(Object obj) {
Gson gson = new Gson();
return gson.toJson(obj);
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .