اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

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


محمدرضا شاهپیری

کتابخانه بسیار کاربردی PersianJson

43 ارسال در این موضوع قرار دارد

به نام خدا

سلام و عرض ادب خدمت همه دوستان عزیز

اگه اهل برنامه های سمت سرور باشید قطعا تا حالا اسم جیسون(json) به گوشتون خورده و آشنایی نسبی رو با اون دارید یکی از پرکاربردترین کتابخونه ها برای نرم افزارهای آنلاین و حتی بعضی از مواقع برای آفلاینها همین کتابخونه جیسون هست

ساختاری بسیار ساده منعطف و جذاب داره ولی متاسفانه توی بیسیک به روش درستی پیاده سازی نشده و ضعفهای بسیار جدی و عمده ای داره که یا باهاش مواجه شدین یا در آینده ای نزدیک میشین:malih:

کتابخونه حاظر از کتابخونه قدرتمند org.json ایمپلمنت شده و نهایت سادگی و جذابیت رو شما در کار با جیسون تجربه میکنید توی بیسیک

تو فیلم زیر یه مقایسه خیلی ساده بین جیسون خود بیسیک و جیسون این کتابخونه انجام شده و میبینید که عملا کتابخونه خود بیسیک بلا استفاده اس به خاطر همون ضعفهایی که توی فیلم عرض میشه خدمتتون

persianlibeju

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

شاد و موفق باشید

لینک خرید کتابخانه

لینک آموزش و حل مشکل با ariavolley

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

هموطن این کتابخونه اصلا توی سورس استفاده نشده

تنها کتابخونه خارجی که من استفاده کردم AriaGlide هست که اونم همچین فایلی نمیخواد

توی سورس خاصی استفاده کردین کتابخونه رو یا همین سورسی هست که تو پکیج هست؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 11 دقیقه قبل، محمدرضا شاهپیری گفته است :

هموطن این کتابخونه اصلا توی سورس استفاده نشده

تنها کتابخونه خارجی که من استفاده کردم AriaGlide هست که اونم همچین فایلی نمیخواد

توی سورس خاصی استفاده کردین کتابخونه رو یا همین سورسی هست که تو پکیج هست؟

درست شد ایراد از یک کتابخونه ای بود که اشتباه تیک خورده بود

ممنون از سرعت پاسخگویی

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

درود 

کتابخانه رو تهیه کردم و ازش راضی ام

منتها  این کتابخونه با کتابخونه والی جناب شاهدی مشکل داره

 با کتابخونه okhttputils2 نوشتم خیلی هم خوبه ولی خب volly یه چیز دیگه اس

منتظر پیشنهادات جناب شاهپیری و شاهدی هستم:53:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

درود هموطن

کتابخونه AriaVolly به خاطر اینکه با جیسون خود بیسیک رپ شده دقیقا همون مشکلاتی که کتابخونه جیسون داره اونم داره

بنده قبل از انتشار کتابخونه با آقای ایزدی در این خصوص صحبت کردم و مساله رو خدمت ایشون عرض کردم قرار شد با آقای شاهدی عزیز صحبت بشه

تا برای این موضوع چاره ای پیدا بشه و در صورت امکان یک نسخه از این کتابخانه که با جیسون پیشفرض خود اندروید(همین کتابخانه) مچ هست تهیه بشه تا دوستانی که این کتابخانه را تهیه کردن

بتونن با خیال راحت اطلاعات خودشون رو از طریق این دوتا کتابخونه تو برنامه هاشون استفاده کنند

تا زمانی که کتابخونه آقای شاهدی آماده نشه باید از همون کتابخونه OkHttpUtils2 استفاده کنید انشالا که مساله حل میشه به زودی

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 1395/09/21, 08:57:46، محمدرضا شاهپیری گفته است :

درود هموطن

کتابخونه AriaVolly به خاطر اینکه با جیسون خود بیسیک رپ شده دقیقا همون مشکلاتی که کتابخونه جیسون داره اونم داره

بنده قبل از انتشار کتابخونه با آقای ایزدی در این خصوص صحبت کردم و مساله رو خدمت ایشون عرض کردم قرار شد با آقای شاهدی عزیز صحبت بشه

تا برای این موضوع چاره ای پیدا بشه و در صورت امکان یک نسخه از این کتابخانه که با جیسون پیشفرض خود اندروید(همین کتابخانه) مچ هست تهیه بشه تا دوستانی که این کتابخانه را تهیه کردن

بتونن با خیال راحت اطلاعات خودشون رو از طریق این دوتا کتابخونه تو برنامه هاشون استفاده کنند

تا زمانی که کتابخونه آقای شاهدی آماده نشه باید از همون کتابخونه OkHttpUtils2 استفاده کنید انشالا که مساله حل میشه به زودی

 

سلام و درود

آیا جناب شاهدی کاری میکنن یا خیر؟

چون با OkHttpUtils2 کارمو انجام دادم و موقع لود فورس کلوز میده

اگر ممکنه بهشون بگین اقدامات لازمو انجام بدن تا ما هم کارمون راه بیوفته

سپاس

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

صبور باشید هموطن:53:

آقای شاهدی یه خورده مشغلشون زیاده و کمتر میتونن وقت بزارن

هماهنگی های لازم با مدیریت انجمن صورت گرفته و انشالا به زودی مشکل رفع میشه

موفق باشید:53:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ورژن 2 کتابخونه اضافه شد. تو این ورژن میتونید جیسون رو خودتون به صورت دلخواه بسازین. که برای مواقعی که میخواین سمت سرور جیسون بفرستید یا متنی رو به صورت جیسون ذخره کنید خیلی مفیده.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام جناب شاهپیری عزیز
من یک مقدار از هاست ارسال میکنم میرسه به برنامه با کتابخونه نت فارسی شما

به درستی میرسه 

در این متد نیاز دارم سه پارامتر رو بگیرم که 2 تا رو موفق میشم بگیرم ولی سومی که آرایه هست رو نمی تونم بگیرم

Sub persianfastnetwork_onPostJSONObjectOkListener(JsonString As String )
	
	Dim prjs As PersianJSONOBject
	prjs.initialaizJsonString(JsonString)
	Dim returne As String=prjs.getString("return")
	Dim rowcont As Int =prjs.getInt("rowcont")
	Dim mesasge As PersianJSONArray=prjs.getJsonArray("message")
	
	
	Log (returne)
	Log (rowcont)
	Log (mesasge.size)
	For i=0 To mesasge.size-1
		Dim PersianJSONOBject_1 As PersianJSONOBject
		PersianJSONOBject_1=mesasge.getJsonObject(i)
		Log ("داده شماره "& i &" ==>  "&PersianJSONOBject_1)
	Next
	
	
End Sub

در ساب بالا اطلاعات درست میرسه و سایز آرایه 12 تا هست و یعنی درست رسیده

هر آرایه من یک جیسون هست به این صورت 

برای مثال محتویات 2 رکورد اول در این آرایه هست  Message ===> 

[{city_country_key=21,city_key=2392,city_name_farsi=باری,id=5,user_name=کاربر3,number_respond=0,date_added=2017-05-18 14:16:45,respond=,report=0,city_name_en=Bari,user_id=3,question_id=0,user_image=user_icon_3},{city_country_key=21,city_key=2392,city_name_farsi=باری,id=5,user_name=کاربر3,number_respond=0,date_added=2017-05-18 14:16:45,respond=,report=9,city_name_en=Bari,user_id=89,question_id=77,user_image=user_icon_6},
و همینطور 12 تا دیگه رسیده 

حالا نمیتونم این مقدار ها رو بگیرم و بدم به یه مپ تا بتونم استفاده کنم 
آیا نیاز هست با وجود کتابخونه شما مثل قدیم آرایه شماره 1 یا 2 یا ... به یک مپ بدم و مثل جیسون بیسیک استفاده کنم؟
ممنون میشم راهنمایی کنید

در در 1395/09/17, 06:49:22، محمدرضا شاهپیری گفته است :

به نام خدا

 

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خب شما که چیزی نگرفتین از آرایه. فقط آبجکتا رو گرفتین. به شکل زیره دیگه

For i=0 To mesasge.size-1
		Dim PersianJSONOBject_1 As PersianJSONOBject
		PersianJSONOBject_1=mesasge.getJsonObject(i)
		Log ("داده شماره city_name_farsi "& i &" ==>  "&PersianJSONOBject_1.getString("city_name_farsi"))
	Next

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 1396/06/18, 14:26:45، محمدرضا شاهپیری گفته است :

ورژن 2 کتابخونه اضافه شد. تو این ورژن میتونید جیسون رو خودتون به صورت دلخواه بسازین. که برای مواقعی که میخواین سمت سرور جیسون بفرستید یا متنی رو به صورت جیسون ذخره کنید خیلی مفیده.

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

این کد های من هست

	
	
	
	PersianFastNetwork_1.initializeforSSLSupport("persianfastnetwork")
	PostRequest_1=PersianFastNetwork_1.BuildPostQuery(CodModule.web_address&"cities.php/","get_city_data")
	
	Dim PersianJSONOBject_1 As PersianJSONOBject

	DIM JSON AS STRING = "{"client_request":"get_city_data","country_key":"21"}"
	PersianJSONOBject_1.initialaizJsonString(json)
	PostRequest_1.addJSONParametrs(PersianJSONOBject_1.DefaultJsonObject)
	PostRequest_1.executeRequesAsString

با تشکر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 6 ساعت قبل، arastooms گفته است :

 

این استرینگ غلطه که.

DIM JSON AS STRING = "{"client_request":"get_city_data","country_key":"21"}"

شما تو حالت عادی چجوری استرینگها رو به هم میچسبونید؟ اینجا هم همونجوریه. باید بعد از گیومه & بزارید که به هم بچسبن به صورت زیرمیشه. بقیشم کامل کنید خودتون

DIM JSON AS STRING = "{"&"client_request"&":"&"get_city_data"&","&"country_key":"21"}"

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 2 ساعت قبل، محمدرضا شاهپیری گفته است :

این استرینگ غلطه که.


DIM JSON AS STRING = "{"client_request":"get_city_data","country_key":"21"}"

شما تو حالت عادی چجوری استرینگها رو به هم میچسبونید؟ اینجا هم همونجوریه. باید بعد از گیومه & بزارید که به هم بچسبن به صورت زیرمیشه. بقیشم کامل کنید خودتون


DIM JSON AS STRING = "{"&"client_request"&":"&"get_city_data"&","&"country_key":"21"}"

 

سلام جناب شاهپیری عزیز
طبق موضوعات مطرح شده در سایت اصلی جیسون به آدرس زیر 

مرجع اصلی json  ترجمه فارسی

می بینید که نوشته

يك شيء (object) يك مجموعه نامنظم از زوج‌هاي نام/ارزش است. يك object‌ با { (آكولاد باز) شروع، و با } (آكولاد بسته) تمام مي‌شود. در انتهاي هر نام يك : (دو نقطه) قرار مي‌گيرد و زوج‌هاي نام/ارزش با , (ويرگول) جدا مي‌شوند.

object.gif

 

در واقع این فرم استرینگ به نظرم اصولی نیست 
چون مل قصد داریم واقعا یک متن جیسون معرفی و بعد ارسال کنیم
فرض کنید با توضیحات شما بخایم یک آرایه هم ارسال بشه که داخلش چند آبجکت جیسون هست !!
پس اون رو چه طور باید ارسال کنیم با این کتابخونه؟؟

 

{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}

پس به نظرم بهتره که این موضوع اصلاح بشه تا توانایی گرفتن جیسونی به فرم بالا رو داشته باشه که استاندارد هست

شما ببینید در این سایت وقتی متن بالا ارسال میشه به راحتی تجزیه وتحلیل میشه

Online JSON Viewer

کتابخونه هم باید فرم استاندارد رو بپذیره که اصولی و منطقی هست
اگر موافق هستید بفرمایید تا من منتظر تغیرات باشم 
با تشکر
 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این مطالبی که فرمودین چه ربطی به کتابخونه داره عزیز؟ 

شما وقتی از متد initializString استفاده میکنید هر جیسونی رو به عنوان ورودی میتونید بدید. 

مشکل اینه که شما نمیتونید جیسون رو به سادگی به صورت یه متغیر استرینگ توی بیسیک در بیارید. شما میتونید جیسونی که میخواین رو توی یه فایل تکست بزارین و با دستور file.readstring اونو بخونید و به کتابخونه بدین بدون هیچ مشکلی.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 7 ساعت قبل، محمدرضا شاهپیری گفته است :

این استرینگ غلطه که.


DIM JSON AS STRING = "{"client_request":"get_city_data","country_key":"21"}"

شما تو حالت عادی چجوری استرینگها رو به هم میچسبونید؟ اینجا هم همونجوریه. باید بعد از گیومه & بزارید که به هم بچسبن به صورت زیرمیشه. بقیشم کامل کنید خودتون


DIM JSON AS STRING = "{"&"client_request"&":"&"get_city_data"&","&"country_key":"21"}"

 

با سلام خدمت شما جناب شاهپیری عزیز 
من فکر میکنم قسمتی از کد نویسی رو متوجه نمیشم 

من تو برنامه این کد رو دارم 

	Dim json As String =("{'client_request':'get_city_data','country_key':'21'}").replace("'",QUOTE)

خروجی این خط کد میشه 

{"client_request":"get_city_data","country_key":"21"}

همونطور که میبینید طبق این قسمت از سایت مرجع این یک جی سان کامل و صحیح هست 

( میتونید اینجا تست کنید)

حالا من چه طور باید این داده رو به هاست بفرستم ?? 
ممکنه راهنمایی بفرمایید با کتابخانه فست نت شما و جیسون شما چه طور میتونم این ارسال رو با متد post داشته باشم 
سپاس

سسسسسسسس.PNG

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در هم اکنون، arastooms گفته است :

 

خیلی سادس که.

Sub senddata(url As String)
	PersianFastNetwork_1.initializeforSSLSupport("persianfastnetwork")
	PostRequest_1=PersianFastNetwork_1.BuildPostQuery(url,"tag1")
	Dim json As String =("{'client_request':'get_city_data','country_key':'21'}").replace("'",QUOTE)
	Dim prjs As PersianJSONOBject
	prjs.initialaizJsonString(json)
	PostRequest_1.addJSONParametrs(prjs.DefaultJsonObject)
	PostRequest_1.executeRequesAsJSONObjectt
End Sub

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 47 دقیقه قبل، محمدرضا شاهپیری گفته است :

خیلی سادس که.


Sub senddata(url As String)
	PersianFastNetwork_1.initializeforSSLSupport("persianfastnetwork")
	PostRequest_1=PersianFastNetwork_1.BuildPostQuery(url,"tag1")
	Dim json As String =("{'client_request':'get_city_data','country_key':'21'}").replace("'",QUOTE)
	Dim prjs As PersianJSONOBject
	prjs.initialaizJsonString(json)
	PostRequest_1.addJSONParametrs(prjs.DefaultJsonObject)
	PostRequest_1.executeRequesAsJSONObjectt
End Sub

 

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

		
	PersianFastNetwork_1.initializeforSSLSupport("persianfastnetwork")
	PostRequest_1=PersianFastNetwork_1.BuildPostQuery(CodModule.web_address&"cities.php/","get_city_data")
	Dim prjs As PersianJSONOBject
	prjs.initialaizJsonObject
	
	prjs.putToJSON("client_request","get_city_data")
	prjs.putToJSON("country_key","21")

	PostRequest_1.addJSONParametrs(prjs.DefaultJsonObject)
	PostRequest_1.executeRequesAsJSONObjectt

ولی کد شما هیچ پاسخ و هیچ خطایی رو نشون نمیده 
فکر میکنم مشکلی هست!
میتونید با نسخه ای که براتون مسیج کردم دیروز کنترل بفرمایید 
مرسی 
منتظر پاسخ هستم

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام جناب شاهپیری 
من قصد دارم داده های جی سون رسیده رو به یک مپ بدم مثل کتابخونه جی سان بیسیک با این دستور

Dim root As Map = parser.NextObject 

 علت این کار این هست که انتقال داده ها در برنامه معمولا بین اکتیوتی ها و مدولها و کد مدولها به راحتی با یک مپ ساده انجام میشه
و وقتی اطلاعاتی به برنامه میرسه و من اون رو روی map قرار میدم میتونم اون مپ رو همه جا با یه اسم خاص خودش صدا کنم
ولی در کتابخونه شما این قابلیت وجود نداره 
در واقع من باید دونه دونه داده ها رو با کد زیر بگیرم و بدم به یه مپ که لازم دارم 
 

Dim prjs As PersianJSONOBject
prjs.initialaizJsonString(json)

Dim zip As String = prjs.getString("zip")
Dim country As String = prjs.getString("country")
Dim city As String =prjs.getString("city")

بعضا جاهایی هست در برنامه که موضوعات و جیسون های رسیده کلید های برابری داره ولی باید توسط مپ شناسایی بشه 

مثلا در یک جیسون user name تیم یک با کلید user میرسه
در یک جیسون دیگه هم user name تیم دیگری مثلا تیم شماره 2 هم با کلید user میرسه 

 

خوب من 2 تا مپ تعریف میکنم به اسم تیم یک

و تیم 2

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

در صورتی که در کتابخونه شما این امکان حذف شده 

البته گرفتن تکی هم برای کار های کوچکتر بسیار امکان خوبی هست که کتابخونه شما داره :hi:

 

امید وارم درست منظورم رو رسونده باشم 

و اگر قصد آپدیت دارید بگید که من منتظر باشم 

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

مطالب شما نیاز است به تایید مدیران برسد

مهمان
شما به عنوان کاربر مهمان در حال حاضر دیدگاه ارسال می کنید. اگر دارای حساب کاربری در سایت هستید لطفا وارد حساب کاربری خود شوید.
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.