انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت JSONArray در وب سرویس و دریافت آن در برنامه

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#1
سلام
وقت بخیر
من از کدهای زیر برای گرفتن اطلاعات از دیتابیس سمت سرور و تبدیل اون به JSONArray استفاده می کنم :

کد پی‌اچ‌پی:
require_once 'include/DB_Connect.php';
      
// connecting to database
      
$db = new DB_Connect();
      
$db->connect();
      
$id intval($_POST['id']);
 
      
$result mysql_query("SELECT * FROM testup WHERE id > $id");
      while(
$user mysql_fetch_array($result))
      {
          
$response["success"]                 = 1;
          
$response["users"]["id"]      = $user["id"];
          
$response["users"]["family"]      = $user["family"];
          
$response["users"]["phone"]      = $user["phone"];
           
          echo 
json_encode($response);
      } 

و برای دریافتشون در برنامه و افزودن به دیتابیس از این کدها استفاده می کنم :

کد پی‌اچ‌پی:
JSONArray json_user json.getJSONArray("user");
                                for (
int i 0json.length(); i++) {
                                    
JSONObject objJson json_user.getJSONObject(i);
                                               
// here you can get id,name,city...
                                    
String id objJson.getString("id");
                                    
String family =objJson.getString("family");
                                    
String phone=objJson.getString("phone");
                                   
db.adduser(idfamilyphone);
                               } 

و کدهای دیتابیس برنامه برای افزودن اطلاعات :

کد پی‌اچ‌پی:
public void adduser(String idString familyString phone){
         
        
ContentValues values = new ContentValues();
        
values.put("id"id);
        
values.put("family"family);
        
values.put("phone"phone);
         
        
mydb.insert("testup"nullvalues);
 
    } 

اما این کار نمیکنه ، ممکنه چک کنید که من کجا رو اشتباه کردم؟

این رو تو لاگ میبینم :

کد پی‌اچ‌پی:
03-28 21:05:10.735E/JSON(7613): {"tag":"updb","success":1,"error":0,"users":{"id":"2","family":"tamanae","phone":"654321"}}{"tag":"updb","success":1,"error":0,"users":{"id":"3","family":"karami","phone":"987654"}}{"tag":"updb","success":1,"error":0,"users":{"id":"4","family":"nafari","phone":"456789"}} 

البته این کد رو هم برای وب سرویس امتحان کردم  :

کد پی‌اچ‌پی:
require_once 'include/DB_Connect.php';// connecting to database
$db = new DB_Connect();
$db->connect();
$id intval($_POST['id']);
 
 
$response = Array();
 
 
$result mysql_query("SELECT * FROM testup WHERE id > $id");
while(
$user mysql_fetch_array($result))
{
      
    
$response[] = $user;
}
 
 
echo 
json_encode(Array("success" => 1"users" => $response)); 

اما کار نکرد و این رو تو لاگ میبینم :

کد پی‌اچ‌پی:
03-29 18:03:02.646E/JSON Parser(14069): Error parsing data org.json.JSONExceptionEnd of input at character 0 of 

میشه بگید ایرادم کجاست و باید از چه کدی استفاده کنم؟
پاسخ

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#2
دوست عزیز میشه لاگ کامل بفرستیدتا ببینیم مشکل از چیه؟.
پاسخ

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#3
کل لاگ همین بود که فرستادم عزیز
اگه نیاز هست پروژه رو بفرستم کل فایل هاشو خودتون تست کنید
پاسخ

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#4
دوست عزیز شما وقتی کد php اجرا میکنید(اصلا بدون کدهای اپلیکیشن)..اطلاعات جیسون به درستی نمایش داده میشه و اطلاعات از سمت سرور درست خوانده میشود؟
پاسخ

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#5
والا من اصلا php بلد نیستم این کد های وب سرویس رو به کسی گفتم واسم نوشته ، نمیدونم چجوری باید یه پیجی بسازم که تست کنم چون ورودی ها رو به روش post میگیره نمیشه تو url مقادیر رو فرستاد
این لینک وب سرویس هست :

http://aghsatiha.com/testup/

باید این مقادیر براش ارسال شه :
tag =updb

و id = 1
کلا 4 تا رکورد دارم پس ای دی رو برابر 1 باید فرستاد که 3تا رکورد دیگه رو نمایش بده
اگه براتون مقدور هست صفحه تستش رو برای php بسازید ممنون میشم
پاسخ

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#6
یه مشکل املایی بود که حل شد. الان آپدیت کار میکنه با کد های زیر اما مشکلی که هست این هست که طبق این کد ها، من 3 تا ردیف اطلاعات دارم میفرستم و در دیتابیس برنامه هم 3 بار کار ذخیره سازی انجام میشه و 3 تا رکورد جدید اضافه میشه
اما تنها مشکلی که هست این هست که هر 3 رکورد مقادیر یکسانی دارن و مقادیرشون برابر رکورد اولی هست که از سرور برمیگرده

کد های اندروید :

کد پی‌اچ‌پی:
JSONObject json_user json.getJSONObject("user");
                                for (
int i 0json_user.length(); i++) {
                                    
String id json_user.getString(TAG_ID);
                                    
String family json_user.getString(TAG_FAMILY);
                                    
String phone json_user.getString(TAG_PHONE); 
                                   
db.adduser(idfamilyphone);
                               } 

رکوردهای ورودی به صورت زیر هست :

کد پی‌اچ‌پی:
{"id":"2","family":"tamanae","phone":"654321"}
{
"id":"3","family":"karami","phone":"987654"}
{
"id":"4","family":"nafari","phone":"456789"

اما فقط این رکورد در دیتابیس ثبت میشه 3 بار :

کد پی‌اچ‌پی:
{"id":"2","family":"tamanae","phone":"654321"
پاسخ

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#7
اینم تست کردم جواب نداد :

کد پی‌اچ‌پی:
JSONArray json_user json.getJSONArray("user");
                                for (
int i 0json_user.length(); i++) {
                                
JSONObject objJson json_user.getJSONObject(i);
                                     
// here you can get id,name,city...
                                    
String id objJson.getString("id");
                                    
String family objJson.getString("family");
                                    
String phone objJson.getString("phone");
                                   
db.adduser(idfamilyphone);
                               } 
پاسخ

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#8
دوست عزیز بعد از این دستورتون

کد پی‌اچ‌پی:
    JSONArray json_user json.getJSONArray("user"); 

json_user تبدیل کنید به یک رشته و بعدش نتیجه رو داخل یک تکست ویو نمایش دهید..میخوام ببینم فرمت گرفته شده چه جوری هست.
پاسخ

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#9
از این کد استفاده کردم برای نمایش اما از settext ایراد میگیره

کد پی‌اچ‌پی:
TextView etelaat = (TextViewfindViewById(R.id.etel);
                                JSONArray json_user json.getJSONArray("user");
                                etelaat.setText((CharSequencejson_user);

  
پاسخ

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#10
از این دستور استفاده کن

کد پی‌اچ‌پی:
String s=json_uset.toString();
etelate.setText(s); 
پاسخ
 سپاس شده توسط admin

ساخت JSONArray در وب سرویس و دریافت آن در برنامه

#11
حل شد بهروز جان ممنون
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان