serialize and unserialize PHP data structures in JavaScript
Fully compatible with PHP's serialize/unserialize functions for seamless data exchange
Support for PHP's Serializable interface with custom class mapping
TypeScript support with strict type checking and comprehensive type definitions
Flexible encoding options with support for both UTF-8 and binary data
Choose your preferred package manager:
npm
$ npm install php-serialize
yarn
$ yarn add php-serialize
import { serialize, unserialize } from 'php-serialize'
// Serialize data
const data = {
name: 'John Doe',
age: 30,
hobbies: ['reading', 'coding']
}
const serialized = serialize(data)
// Unserialize data
const unserialized = unserialize(serialized)
console.log(unserialized) // Original object
class User {
constructor({ name, age }) {
this.name = name
this.age = age
}
serialize() {
return JSON.stringify({ name: this.name, age: this.age })
}
unserialize(rawData) {
const { name, age } = JSON.parse(rawData)
this.name = name
this.age = age
}
}
const user = new User({ name: 'Steel Brain', age: 17 })
const serialized = serialize(user)
// Unserialize with class mapping
const unserialized = unserialize(serialized, { User })
console.log(unserialized instanceof User) // true
// Custom namespace mapping
const serializedForNamespace = serialize(user, {
'MyApp\User': User,
})
// Using different encoding options
const binaryData = serialize(data, {}, { encoding: 'binary' })
const utf8Data = serialize(data, {}, { encoding: 'utf8' })
// Strict mode unserialize
const strict = unserialize(serialized, {}, { strict: true })
Made with ❤️ by Anees Iqbal (@steelbrain)